默认
打赏 发表评论 78
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
即时通讯框架MobileIMSDK:压力测试报告
微信扫一扫关注!

本文描述的是MobileIMSDK在某测试环境下服务端的:并发吞吐效率、整体负载以及JVM级健康状况等数据。测试条件有限,仅供参考。


* 补充说明:使用简单网络工具测试通信的话,可以看看我在《这个帖子里的回复》。另外:如果不会自已做压力测试,详细的TCP、UDP协议压力测试文档,我会在抽空的时候补充出来!

一、测试方法


  • 网络环境:为了排除网络复杂性对测试的干扰,测试由同一局域网中的机器完成;
  • 网络设备:条件有限,使用的是一台入门级中小型企业用路由器(设备性能对测试有一定影响,请酌情解读结果);
  • 客户端:分别运行于2台惠普380型物理服务器(硬件指标仅供参考,请酌情解读测试结果);
  • 服务端:运行于1台惠普580型48核32G物理服务器(硬件指标仅供参考,请酌情解读测试结果);
  • 客户端工具:Apache JMeteriKende.com的TCP/UDP性能测试工具 (注: 此工具已被下架,如有需要请回贴留下邮箱,我会发送我的存档版本);
  • 服务端工具:Spotlight on WindowsJProfiler

* 20220827日注:这里有介群友分享的MobileIMSDK的JMeter压力测试插件,需要的可以参考一下:《分享自已写的针对MobileIMSDK的jmeter压力测试插件》。

二、测试结果


MobileIMSDK服务端在上述测试条件下,单机吞吐效率约为40000/秒。测试显示,服务端整体负载较轻,JVM各项指标均处健康可持续状态。

三、 性能解读


  • 负载解读(假如用于推送时):
    理论单机负载可达千万级,理由是:以每客户端5分钟心跳间隔计、1000万的在线量,网络吞率需达33000/秒(即10000000/(5*60)),显然MobileIMSDK理论上没有问题。
  • 负载解读(假如用于聊天时):
    保守假设每个正在聊天的人每发一条消息的间隔为5秒(实际应用中, 手机上从调出输入法到输入完成并发送,即使简单的“你好”2字,一般人也通常会超出5秒,不信请打开计时器(当然凡事没有绝对,哥只是作一个普遍性的推断,勿喷)),同时在线的人员中有3分之1的人正在聊天(这么高的并发互动比率对于一般的聊天APP而言可能性非常小,此处为保留估计)。那么基于以上假设,MobileIMSDK可支撑的同时在线人数为:(40000 * 5) / (1/3) = 60万。当然,每款聊天应用实际会因各种客观因素的存在而不尽相同,不可能等同视之,请视具体情况客观评估之,以上数字仅供参考。
  • 带宽解读:
    生产环境中,单机满载时,带宽瓶颈会首先出现。单机带宽总会有上限,因而超高负载应用,集群才是最佳解决方案。
  • 计算性能:
    MobileIMSDK涉及的主要计算性能指标是内存性能、网络交换性能、CPU性能,提升这几项都能相应提高其吞吐效率。

四、客户端测试截图


工具1:某TCP/UDP性能测试工具

测试显示,MobileIMSDK的平均吞吐约为40000/秒。


即时通讯框架MobileIMSDK:压力测试报告_client1.png

工具2:Apache JMeter

实测中,JMeter的UDP压力测试插件本身性能就不好,单机根本达不到服务端压力极限,所以只能同时使用2台机器作客户端,即使这样,也没有达到服务端上限,条件有限,勉强作个参考吧。


即时通讯框架MobileIMSDK:压力测试报告_屏幕快照 2015-09-03 23.33.24.png

即时通讯框架MobileIMSDK:压力测试报告_屏幕快照 2015-09-03 23.32.37.png

五、服务端测试截图


工具1:Spotlight监控宏观负载


>> 测试显示:网络负载、CPU计算、内存交换是MobileIMSDK涉及的3个主要资源(注意带宽负载为78M/2=39M bps)。
即时通讯框架MobileIMSDK:压力测试报告_server1.png

工具2:JProfile监控JVM微观情况


>> 测试显示:MINA框架确实是将网络IO处理线程和业务处理线程分开了。
即时通讯框架MobileIMSDK:压力测试报告_1.png

>> JVM的内存分配和回收情况。
即时通讯框架MobileIMSDK:压力测试报告_2.png

>> JVM的GC回收频率和占用的CPU计算资源。
即时通讯框架MobileIMSDK:压力测试报告_3.png

六、捐助作者,得MobileIMSDK精编注释版


点击以下链接,前往淘宝下单,付款后发货到您的指定邮箱:


即时通讯框架MobileIMSDK:压力测试报告_all-in-one.png

(更多详情请进入:http://www.52im.net/thread-411-1-1.html

附录:更多链接


其它资料链接请回到详细介绍页↘http://www.52im.net/thread-52-1-1.html

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:即时通讯框架MobileIMSDK的Demo使用帮助:Java版下一篇:即时通讯框架MobileIMSDK的开发指南:Java客户端

本帖已收录至以下技术专辑

推荐方案
评论 78
求测试工具,谢谢。443634609@qq.com
引用:susu 发表于 2022-10-15 14:18
楼主,麻烦发一下性能 测试工具,谢谢!

已发送
楼主,麻烦发一下性能 测试工具,谢谢!wr898989@163.com
这是群友分享的MobileIMSDK的JMeter压力测试插件,需要的可以看看:
分享自已写的针对MobileIMSDK的jmeter压力测试插件

已发送
求测试工具.m18255463570@163.com
引用:Tevins 发表于 2022-06-29 13:49
麻烦发送一份性能测试工具,感谢!

已发送
麻烦发送一份性能测试工具,感谢! 1913739434@qq.com
引用:sycheng 发表于 2022-05-05 15:15
可以发送一份性能测试工具吗,谢谢。

已发送
可以发送一份性能测试工具吗,谢谢。sychengneu@163.com
受教了,写的很详细!

不用客气

谢谢
引用:haiyaoduojiu 发表于 2022-03-03 09:14
,麻烦群主发送一份测试工具

已发送
1481936764@qq.com,麻烦群主发送一份测试工具
引用:刘华强 发表于 2022-03-02 14:25
麻烦群主提供一下第一个TCP测试工具,谢谢

已发送
183615215@qq.com 麻烦群主提供一下第一个TCP测试工具,谢谢
引用:袁寅浩 发表于 2022-02-21 16:26
麻烦发送一份测试工具,谢谢,

已发送
麻烦发送一份测试工具,谢谢,1729092961@qq.com
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部