-
Notifications
You must be signed in to change notification settings - Fork 569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Removed ReceiveBufferSize and SendBufferSize to improve message rates #1414
Conversation
@MarcoZuiderwijkBS thank you for digging in. As ff627be mentions, some workload may benefit from these settings, while your workload with messages much larger than average suffers. Sounds like it should be a configurable settings and not something we flip back and forth. At least several other clients allow you to "post-configure" a socket before it connects using |
Converting to draft just to ensure this isn't merged prematurely. |
We should adopt what the Java client does to configure the underlying Socket: That way, if someone wants to adjust buffer sizes, they can. The only thing we should do is disable Nagle's algo. cc @stebet on this just so he's in the loop. |
@MarcoZuiderwijkBS I've merged your code into #1415. Since your PR is on the |
@MarcoZuiderwijkBS Please sign the Contributor License Agreement! Click here to manually synchronize the status of this Pull Request. See the FAQ for frequently asked questions. |
@MarcoZuiderwijkBS Thank you for signing the Contributor License Agreement! |
1 similar comment
@MarcoZuiderwijkBS Thank you for signing the Contributor License Agreement! |
Improve test for SocketFactory Follow-up to: * #1414 * #1415 * #1416 https://groups.google.com/g/rabbitmq-users/c/9_ohuUbX9NY
Improve test for SocketFactory Follow-up to: * #1414 * #1415 * #1416 https://groups.google.com/g/rabbitmq-users/c/9_ohuUbX9NY (cherry picked from commit 56bd2c9)
Improve test for SocketFactory Follow-up to: * #1414 * #1415 * #1416 https://groups.google.com/g/rabbitmq-users/c/9_ohuUbX9NY (cherry picked from commit 56bd2c9)
Proposed Changes
When connecting our application running in the Western Europe region to a RabbitMQ instance in the East-US region we got a very low message rate (12 messages per second). Message size is around 80kb. We also tested this with a Python (using pika 1.3.2) and a Java consumer (using amqp-client 5.16.0) which had a much higher message rate (> 500 messages per second). We also did a test with RabbitMQ version 5.2.0 and to our surprise this also had a much higher message rate.
My colleague Joey Bleeker investigated the differences between version 5.2.0 and 6.6.0 of the RabbitMQ Client and found this commit. We removed the setting for the ReceiveBufferSize and SendBufferSize. This gives the latest RabbitMQ.Client the same performance as the version 5.2.0. The previous changes seems to conflict with the TCP Window Scaling.
Types of Changes
What types of changes does your code introduce to this project?
Put an
x
in the boxes that applyChecklist
Put an
x
in the boxes that apply. You can also fill these out after creatingthe PR. If you're unsure about any of them, don't hesitate to ask on the
mailing list. We're here to help! This is simply a reminder of what we are
going to look for before merging your code.
CONTRIBUTING.md
documentFurther Comments
If this is a relatively large or complex change, kick off the discussion by
explaining why you chose the solution you did and what alternatives you
considered, etc.