bloomberg / amqpprox

An AMQP 0.9.1 proxy server, designed for use in front of an AMQP 0.9.1 compliant message queue broker such as RabbitMQ.
Apache License 2.0
78 stars 16 forks source link

Extend performance_tester to attempt testing many more connections #86

Closed adamncasey closed 2 years ago

adamncasey commented 2 years ago

This commit makes two changes:

  1. Extend the dummy RabbitMQ server to support a few more features - this was useful in my testing so we could point a real RabbitMQ client at the server (via amqpprox) to test many open connections

  2. Support an async rabbitmq client (using lapin). I thought I'd be able to directly use this to test a high (20k) number of connections. In actual fact it seems like lapin internally wants to make a new thread for every connection, so with a reasonable stack size there is a pretty low limit on the maximum connections possible from a single process - I was hitting tens of GB RAM usage from only a couple of thousand connections.

I could be convinced to drop the second feature. I left it in because I thought it might be useful to use if lapin changes.