请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 76
想开发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/秒。


client1.png

工具2:Apache JMeter

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


屏幕快照 2015-09-03 23.33.24.png

屏幕快照 2015-09-03 23.32.37.png

五、服务端测试截图


工具1:Spotlight监控宏观负载


>> 测试显示:网络负载、CPU计算、内存交换是MobileIMSDK涉及的3个主要资源(注意带宽负载为78M/2=39M bps)。
server1.png

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


>> 测试显示:MINA框架确实是将网络IO处理线程和业务处理线程分开了。
1.png

>> JVM的内存分配和回收情况。
2.png

>> JVM的GC回收频率和占用的CPU计算资源。
3.png

六、捐助作者,得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客户端

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

推荐方案
评论 76
“>> 测试显示:MINA框架确实是将网络IO处理线程和业务处理线程分开了。”

是不是就是异步了?
这篇帖子是另一个使用MobileIMSDK的群友自已做的压力测试,
可能会有人遇到跟他类似的问题,如何正确的测试出压力极限请移步此贴:http://www.52im.net/thread-346-1-1.html
性能不错
签名: 顶顶顶顶
工具好评。
签名: 该会员没有填写今日想说内容.
性能不错
签名: 好好好哈哈哈哈
性能不错
签名: 心情好
不错
签名: im从业10年以上,欢迎切磋![url=http://www.52im.net/static/image/smiley/default/handshake.gif]http://www.52im.net/static/image/smiley/default/handshake
麻请发送一份性能测试工具,谢谢。codersen_raven@qq.com
引用:asas110123 发表于 2019-02-14 09:16
麻请发送一份性能测试工具,谢谢。

已发送到你的邮箱,注意查收
麻请发送一份性能测试工具,谢谢。krisL1@163.com
引用:NowIsGood. 发表于 2019-04-09 15:08
麻请发送一份性能测试工具,谢谢。

已发
麻烦请发送一份性能测试工具,谢谢。 995158803@qq.com
签名: 哈哈哈
引用:后来_lG8o1 发表于 2019-05-05 09:58
麻烦请发送一份性能测试工具,谢谢。

已发
求测试工具。271615470@qq.com
引用:haoran 发表于 2019-05-13 12:33
求测试工具。

已发
请问下  tcpudptest测试,如何写data里面的数据,是一直发送同一个用户的登录报文信息吗?
签名: 哈哈哈
请问下,tcpudptest应该是只能测试吞吐量  没办法测试长连接的吗?应该如何测试长连接呢?
签名: 哈哈哈
引用:后来_lG8o1 发表于 2019-05-29 10:18
请问下,tcpudptest应该是只能测试吞吐量  没办法测试长连接的吗?

测吞吐的时候不就是针对长连接吗。。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部