-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add amqpprox performance testing tool
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>
- Loading branch information
1 parent
357a652
commit 6b87dfc
Showing
16 changed files
with
2,409 additions
and
18 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
build | ||
tests/performance_tester/target |
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
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
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
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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
target |
Oops, something went wrong.