Skip to main content

Preface

The excellence of a communication system is primarily measured by four indicators: high performance, stability, reliability, and ordering. High performance: Extreme stress testing of message sending concurrency and message receiving concurrency. Stability: Testing whether CPU and memory remain stable during long-term operation under high concurrency. Reliability: Testing whether messages are lost. Ordering: Testing whether messages are out of order.

Test Environment

All stress test results can be reproduced on your own server according to the test content and hardware specifications. WuKongIM Test Version: v2.1.2-20250120

Hardware Information

Resource DescriptionHardware ConfigurationQuantity
WuKongIM ServerUbuntu 22.04 LTS SA5.4XLARGE32 (Standard SA5, 16 cores 32GB), 50G Enhanced SSD Cloud Disk, Baseline Performance: 4300 IOPS1 unit
Stress Test MachineUbuntu 22.04 LTS SA5.4XLARGE32 (Standard SA5, 16 cores 32GB), 50G Enhanced SSD Cloud Disk, Baseline Performance: 4300 IOPS1 unit

Performance Testing

Core indicator of whether a communication system is high-performance: message sending concurrency and message receiving concurrency (in simple terms: the maximum number of messages the system can process for sending and delivery per second)

Send Rate Testing

Test Content
ContentOnlineSend Rate
100 groups of 100 people each1 person online per group24,000 messages per minute per group
Total Send Rate: 100 * (24000/60) = 40,000 messages/second Test Screenshots
Test ContentSystem Top Information
Running Stress TestRunning Stress Test
Test Results
MetricValue
Total Messages Sent20 million
Message Sending Concurrency40,000/second
Average Send Latency400ms~600ms
Memory Usage1~2G
CPU Usage60~80%
Summary: With sending concurrency reaching 40,000/second, the average message sending latency is still within milliseconds, memory is stable, CPU usage is within expectations. Excellent performance! 👍 (If you have no concept of 40,000/second, compared to MySQL, a 16-core server has write performance of about 3,000~8,000/second. 40,000/second is close to Redis write performance with AOF mode enabled)

Receive Rate Testing

Test Content
ContentOnlineSend Rate
1 group of 10,000 people5,000 group members online (50%)2,400 messages per minute
Total Receive Rate: 5000 * (2400/60) = 200,000 messages/second Test Screenshots
Test ContentSystem Top Information
ImageImage
Test Results
MetricValue
Total Messages Received100 million
Message Receiving Concurrency200,000/second
Average Receive LatencyUnder 1s
Memory Usage1~2G
CPU Usage40~60%
Summary: Under maximum server performance utilization, receiving concurrency reached 200,000/s, demonstrating very strong performance.

Mixed Testing

Test Content
ContentOnlineSend Rate
1,000 one-on-one chats1,000 people online600 messages per minute per pair
100 groups of 100 people each1 person online per group1,200 messages per minute per group
1 group of 10,000 people5,000 group members online300 messages per minute
Total Send Rate: 1000 * (600/60) + 100 * (1200/60) + 1 * (600/60) = 12,010 messages/second Total Receive Rate: 1000 * (600/60) + 100 * (600/60) + 1 * 5000 * (300/60) = 36,000 messages/second Test Screenshots
Test ContentSystem Top Information
ImageImage
Test Results
MetricValue
Messages Sent~4 million
Send Concurrency12,000 messages/second
Average Send Latency10~500ms
Messages Received~10 million
Receive Concurrency36,000 messages/second
Average Receive LatencyUnder 1s
Memory Usage1~2G
CPU Usage70~80%
Summary: Under maximum server performance utilization, send and receive concurrency reached 12,000/s and 36,000/s respectively, showing excellent performance.

Stability Testing

Testing whether the system can run stably under low message latency

Test Objective

Test whether the system can run smoothly under high-frequency sending and receiving concurrency, with average message latency in ideal state (under 500ms).

Test Content

20,000 people online simultaneously
ContentOnlineSend Rate
1,000 one-on-one chats1,000 people online30 messages per minute per pair
200 groups of 200 people each50 (25%) people online per group30 messages per minute per group
100 groups of 500 people each125 (25%) people online per group30 messages per minute per group
1 group of 10,000 people2,500 group members online (25%)30 messages per minute per group
Duration: 24 hours

Test Results

Result Screenshots
Test ContentSystem Top Information
ImageImage
Core Metrics
ContentResult
Continuous Test Duration48 hours
Simultaneous Online20,000
Messages Sent100 million
Messages Received2 billion
Success Rate100%
Send Rate~600 messages/second
Receive Rate~15,000 messages/second
Average Send Latency1~30ms
Average Receive Latency1~200ms
Memory~5G
CPUMaintained at ~20%
Summary: With a 16-core 32GB server under high-frequency messaging in numerous group chats and one-on-one chats, CPU remained stable at around 20%, memory stable at 4-5G, and average message latency remained at millisecond level. Excellent performance.

Reliability Testing

Testing whether messages are lost

Test Objective

Under massive message sending and receiving, all recipients can receive all messages completely.

Test Content

ContentOnlineSend Rate
1,000 one-on-one chats1,000 people online30 messages per minute per pair
200 groups of 200 people each50 (25%) people online per group30 messages per minute per group
100 groups of 500 people each125 (25%) people online per group30 messages per minute per group
1 group of 10,000 people2,500 group members online (25%)30 messages per minute per group
Duration: 24 hours

Test Results

Result Screenshots
Test ContentExpected Messages Received
ImageImage
Core Metrics
ContentResult
Simultaneous Online20,000
Messages Sent102,335,788
Messages Received2,021,201,206
Success Rate100%
Expected Messages to Receive2,021,201,206
Actual Messages Received2,021,201,206
Summary: After massive message sending and receiving, the actual number of messages received is completely consistent with the expected number calculated by the program based on test data. That is, after sending over 100 million messages, all online recipients received them completely. This fully demonstrates the reliability of WuKongIM.

Ordering Testing

Testing whether messages are out of order

Test Objective

Rapidly send messages within a channel to see if the recipient’s order is consistent with the sender’s.

Test Content

ContentOnlineSend Rate
1 one-on-one chat2 people onlineRapid message sending

Test Results

Test Video Summary: When one user rapidly sends messages to another user, the recipient’s message order is completely consistent with the sender’s order.