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

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 Total Send Rate: 100 * (24000/60) = 40,000 messages/second Test Screenshots Test Results 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 Total Receive Rate: 5000 * (2400/60) = 200,000 messages/second Test Screenshots Test Results Summary: Under maximum server performance utilization, receiving concurrency reached 200,000/s, demonstrating very strong performance.

Mixed Testing

Test Content 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 Results 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 Duration: 24 hours

Test Results

Result Screenshots Core Metrics 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

Duration: 24 hours

Test Results

Result Screenshots Core Metrics 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

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.