Webinar
Introducing EMQX 6.1: Durable MQTT Streams and Analytics-Ready Data | Register Now →

Performance Test Report for EMQX Cloud: 10,000 CONN / 20,000 TPS

Benchmark ReportOct 17, 2022

The purpose of this test is to demonstrate that EMQ X Cloud with the SPEC of 10,000 CONN / 20,000 TPS can support 10,000 concurrent connections and 20,000 message TPS with 20k~100k payload size.

To verify the capability, we picked two scenarios.

The first was the 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 meant for a message EMQ X Cloud received, it only forwarded to one sub client.

In this testing, the 1:1 scenario had 5,000 pub clients and 5,000 subscribers with 5,000 different topics (1 subscriber per topic), and each pub client published 1 or 2 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 10,000 or 20,000.

The second scenario was fan-out, where 10,000 clients were subscribed to 1 topic. It meant, for a message EMQ X Cloud received, it forwarded to 10,000 subscribers. So, if the pub client published 1 message per second, the message-out throughput was 10,000.

Scenario Pub:Sub 1:1

Scenario Fan-out

The detailed test cases we executed are as follows:

Pub:Sub 1:1

  1. 10,000 concurrent connections, 5,000 QoS 0 message TPS with 100k payload size (2,500 pub+2,500 sub)
  2. 10,000 concurrent connections, 10,000 QoS 0 message TPS with 50k payload size (5,000 pub+5,000 sub)
  3. 10,000 concurrent connections, 20,000 QoS 0 message TPS with 20k payload size (10,000 pub+10,000 sub)

Fan-out

  1. 10,000 concurrent connections, 10,000 QoS 0 message TPS with 100k payload size (1 pub+10,000 sub)
  2. 10,000 concurrent connections, 20,000 QoS 0 message TPS with 32k payload size (1 pub+20,000 sub)

Test Results

Scenario#VariationCPUCPU LoadRAMSub avg resp time(s)
Pub:Sub 1:1110k connections, 2.5k pub tps, 2.5k sub tps, qos 0, payload 100k67%<=529%0.3492
210k connections, 5k pub tps, 5k sub tps, qos 0, payload 50k72%<629%0.0781
310k connections, 10k pub tps, 10k sub tps, qos 0, payload 20k75%<6.525%0.0143
Fan-out110k connections, 1 pub tps, 10k sub tps, qos 0, payload 100k40%<1014%0.3277
210k connections, 1 pub tps, 20k sub tps, qos 0, payload 32k30%<515%0.1161

Related Resources