Skip to content

压力测试报告 (单机)

前序

一个通讯系统是否优秀,主要看四个指标高性能,稳定性可靠性有序性

高性能:极限压测消息发送并发和消息接收并发。

稳定性:测试在高并发下长时间运行,cpu,内存是否稳定

可靠性:测试是否丢消息。

有序性:测试消息是否乱序。

测试

所有的压测结果按照压测内容和硬件都能在自己服务器上复现。

WuKongIM测试的版本:v2.1.2-20250120

硬件信息

资源说明硬件数量
WuKongIM服务端Ubuntu 22.04 LTS SA5.4XLARGE32 (标准型SA5, 16核32GB), 50G增强型SSD云硬盘 基准性能:4300IOPS1台
压测机Ubuntu 22.04 LTS SA5.4XLARGE32 (标准型SA5, 16核32GB), 50G增强型SSD云硬盘 基准性能:4300IOPS1台

性能测试

通讯系统是否高性能核心指标:发送消息并发数和接收消息并发数(通俗讲:系统一秒钟最大能处理多少消息的发送和投递)

发送速率测试

测试内容

内容在线发送速率
100个100人的群每群1人在线每群一分钟24000条消息

总发送速率:100 * (24000/60) = 40000条/秒

测试截图

测试内容系统top信息
运行压测运行压测

测试结果:

指标
发送消息总数2千万条
发送消息并发4万/秒
发送平均延迟400ms~600ms
内存占用1~2G
CPU占用60~80%

总结:发送并发达到4万/秒的情况下,消息发送平均延迟还在毫秒内,内存稳定,CPU预期内,爆赞👍

(如果您对4万/秒没概念,拿mysql来说, 16核服务器下写入性能大概3000~8000/秒左右,4万/秒接近redis开启AOF模式下的写入性能)

接收速率测试

测试内容

内容在线发送速率
1个万人群群成员在线数量5000人(50%)一分钟2400条消息

总接收速率:5000 * (2400/60) = 20万条/秒

测试截图

测试内容系统top信息
图片图片

测试结果:

指标
接受消息总数1亿条
接受消息并发20万/秒
接受平均延迟1s以下
内存占用1~2G
CPU占用40~60%

总结:

在压榨服务器的性能下,接收并发达到20w/s,性能非常强劲。

混合测试

测试内容

内容在线发送速率
1000对单聊1000人在线每对一分钟600条消息
100个100人的群每群1人在线每群一分钟1200条消息
1个1万人群群成员在线数量5000人一分钟300条消息

总发送速率:1000 * (600/60) + 100 * (1200/60) + 1 * (600/60) = 12010条/秒

总接收速率:1000 * (600/60) + 100 * (600/60) + 1 * 5000 * (300/60) = 36000条/秒

测试截图

测试内容系统top信息
图片图片

测试结果:

指标
发送消息数~400万条
发送并发1.2万条/秒
发送平均延迟10~500ms
接受消息数~1000万条
接受并发3.6万条/秒
接受平均延迟1s以下
内存占用1~2G
CPU占用70~80%

总结:

在压榨服务器的性能下,发送并发和接收并发分别达到了 1.2w/s3.6w/s 表现非常优秀。

稳定性测试

测试系统是否能在消息低延迟下稳定运行

测试目标

测试在发送和接收并发高频的情况下,系统能够平稳运行,消息平均延迟在理想状态(500ms以下)。

测试内容

两万人同时在线

内容在线发送速率
1000对单聊1000人在线每对一分钟30条消息
200个200人的群每群50(25%)人在线每群一分钟30条消息
100个500人的群每群125(25%)人在线每群一分钟30条消息
1个1万人群群成员在线数量2500人(25%)每群一分钟30条消息

持续时间:24小时

测试结果

结果截图

测试内容系统top信息
图片图片

核心指标

内容结果
持续测试时间48小时
同时在线20000
发送条数1亿
接收条数20亿
成功率100%
发送速率600条/秒左右
接收速率15000条/秒左右
发送平均延迟1~30ms
接收平均延迟1~200ms
内存5G左右
CPU保持在20%左右

总结

16核32G的服务器,在大量群聊和单聊高频发消息的状态下,CPU稳定在20%左右,内存稳定在4-5G左右,消息平均延迟都在毫秒级别内,表现优异

可靠性测试

测试消息是否丢失

测试目标

大量收发消息下,所有接收者能全部接收到消息。

测试内容

内容在线发送速率
1000对单聊1000人在线每对一分钟30条消息
200个200人的群每群50(25%)人在线每群一分钟30条消息
100个500人的群每群125(25%)人在线每群一分钟30条消息
1个1万人群群成员在线数量2500人(25%)每群一分钟30条消息

持续时间:24小时

测试结果

结果截图

测试内容预期收到消息
图片图片

核心指标

内容结果
同时在线20000
发送条数102335788条
接收条数2021201206条
成功率100%
期望接收消息数量2021201206条
实际接收消息数量2021201206条

总结:

经过大量消息的收发,实际接收消息数与程序根据测试数据计算出来的接收消息数完全一致。即发送超过1亿条消息,所有在线接收者都完全接收。充分证明了WuKongIM的可靠性。

有序性测试

测试消息是否乱序

测试目标

在一个频道内快速发送消息,看接收者的顺序是否与发送者的一致

测试内容

内容在线发送速率
1对单聊2人在线快速发送消息

测试结果

测试视频

总结

一个用户快速给另外一个用户快速发送消息,接受者与发送者消息顺序完全一致。

本文档内容版权属于 上海信必达网络科技有限公司,保留所有权利