-
Notifications
You must be signed in to change notification settings - Fork 17
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
Add a performance testing tool #68
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
alaric
reviewed
Jan 24, 2022
Chinmay1412
reviewed
Jan 25, 2022
Chinmay1412
approved these changes
Jan 27, 2022
This commit adds a new test tool to the amqpprox repo. Extract from the new `tests/performance_tester/README.md`: ``` `amqpprox` performance has been tested mainly in two ways: 1. Total data throughput achieved by connected clients (MB/s) 2. Total connection establishment throughput achieved (connections/s) The performance tester in this folder helps with both of these by: 1. It contains a dummy AMQP 0.9.1. server which walks the AMQP handshake and ignores all future frames except close. 2. It can run parallel AMQP clients connecting to an amqpprox instance. 1. Testing data throughput probably wants to send more, larger messages with fewer connections 2. Testing connection throughput probably wants to send fewer, smaller messages with many connections. ``` I tried lapin instead of amiquip when investigating adding TLS support for the `client -> amqpprox` hop, but found lapin performed significantly worse than `amiquip` and often failed to shutdown cleanly. It's possible this is because amiquip was given a dedicated thread and lapin ran async, or perhaps too many async clients were started & failed to make progress. But initial numbers were 75% down. I didn't think this would properly exercise amqpprox so dropped it for now. It's possible we just need to go down the dummy AMQP client route too. My test setup results so far indicate a roughly 50% impact in connection throughput when enabling TLS from amqpprox to the broker: 2000+ connections/s down to around ~1000/s. Overall data throughput is affected significantly less, with a ~5% reduction: 690MB/s -> 630MB/s. This test setup runs amqpprox on a different, nearby, machine to amqpprox_perf_tester, on similar-ish spec machines to what we use in production. Although I've mainly been looking at the difference in performance here, the absolute numbers are interesting too. I am not sure how we end up 'only' achieving 700MB/s, it's possible the test client can't fully utilise amqpprox here. This commit also upgrades the integration tests to rmq 3.7.28 dockerhub image since 3.7.9 hasn't been built in over 3 years. I had upgraded to 3.9 but that didn't pass the integration tests. I'd prefer to investigate that separately Co-authored-by: Alaric <alaric@bloomberg.net>
adamncasey
force-pushed
the
perftesttls
branch
from
January 27, 2022 16:54
6f24341
to
68bdd39
Compare
Squash & merge is disabled on this repo, possibly because of CLA concerns. I squashed locally |
alaric
approved these changes
Jan 27, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a performance test tool useful for testing amqpprox performance.
An extract from the
README.md
included in the performance_tester directory:amqpprox Performance Testing
amqpprox
performance has been tested mainly in two ways:The performance tester in this folder helps with both of these by:
Usage Help
PR todo