The purpose of this test is to demonstrate that EMQ X Cloud with the SPEC of 5,000 CONN / 10,000 TPS can support 5,000 concurrent connections and 10,000 message TPS with 10k payload size, and 5,000 message TPS with 64k payload size.
For this test scenario, we used a pub:sub 1:1 scenario, where the number of pub clients was the same as the sub clients, and each pub client had a dedicated topic to publish messages, meanwhile, each sub client subscribed to one different topic. It means, for a message EMQ X Cloud received, it only forwarded to one sub client.
Therefore, this testing had 2,500 pub clients and 2,500 subscribers with 2500 different topics (1 subscriber per topic), and each pub client published 1 or 2 QoS 0 messages per second with different size of payload, meaning that “message in” throughput and “message out” were the same. In another word, the total message throughput was 5,000 or 10,000.
The detailed test cases we executed are as follows:
- 5,000 concurrent connections, 5,000 QoS 0 message TPS with 10k payload size (2,500 pub+2,500 sub).
- 5,000 concurrent connections, 10000 QoS 0 message TPS with 10k payload size (5,000 pub+5,000 sub).
- 5000 concurrent connections, 5000 QoS 0 message TPS with 64k payload size (2,500 pub+2,500 sub).
|#||Scenario||CPU||CPU Load||RAM||Sub avg resp time(s)|
|1||5k connections, 2.5k pub tps, 2.5k sub tps, qos 0, payload 10k||23%||<1||29%||0.002|
|2||5k connections, 5k pub tps, 5k sub tps, qos 0, payload 10k||41%||<2.2||30%||0.0039|
|3||5k connections, 2.5k pub tps, 2.5k sub tps, qos 0, payload 64k||47%||<3||38%||0.0611|