As was understood in
INDY-1686, ZMQ may consume a lot of memory if there are a lot of simultaneous client requests, since it uses round-robin to read client queues.
Plenum does (be default) 100 reads in one looper run.
We need to test if situation with memory consumption improves when we restrict the number of client connections.
- Run load test with restricting maximum number of connections
- Configure a pool with maximum number of incoming client connections set to 200
- set MAX_CONNECTED_CLIENTS_NUM = 100
- Run two write only tests: 10 NYMs per sec and 100 NYMs per sec.
- Run a test with write and read: 10 write NYMs per sec and 100 read NYMs per sec from 1000 clients
- Run a test with write and read: 100 write NYMs per sec and 1000 read NYMs per sec from 1000 clients
- Run more experiments if needed
- Monitor and analyze memory consumption in every case
- Check how many client requests were processed, and how many rejected because the pool was busy (due to timeout). Do it for the both read and write reqs
- Decide if we should reduce MAX_CONNECTED_CLIENTS_NUM in production