默认
发表评论 26
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] MobileIMSDK的udp压力测试无法达到单机上限的问题
[已解决] MobileIMSDK的udp压力测试无法达到单机上限的问题_111.jpg

如上图所示,测试时只能跑3200/s的数据,cup20%和内存负载35%左右,无法达到单机极限
求教瓶颈所在

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

上一篇:[已回复] 关于MobileIMSDK的IOS sendData和接收的问题下一篇:iOS端MobileIMSDK 的一个BUG ,麻烦帮我查找一下原因

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

推荐方案
评论 26
服务端用什么写的?你这性能低了点
引用:JackJiang 发表于 2016-06-02 19:17
服务端用什么写的?你这性能低了点

服务端用的就是MobileIMSDK里面的demo
引用:Jpor 发表于 2016-06-02 20:05
服务端用的就是MobileIMSDK里面的demo

这个工具其实有缺陷,你开的5000个连接数,其实你看图上绝大部分线程都没有正常工作,你看它的“receive”和“send”都是1 和 2 就知道了。
我测试的时候连接数20个,就可以测出服务端极限了,有图为证,我测出的吞吐效率是你测的10倍!
[已解决] MobileIMSDK的udp压力测试无法达到单机上限的问题_client1.png
另外,我建议你测试的时候务必确保服务器内存充裕,该关的软件都关掉,至少也要用一台专业一点的物理服务器作为测试机,不然没有意义。
我看你图上的网络地址127.0.0.1:压力测试时客户端和服务端都在同一台机器,这本机测本机是能测出个啥?
而且你说“cup20%和内存负载35%左右”,这。。。。。好吧,其实我想问的是你现在工作几年了?或者现在在实习?
引用:JackJiang 发表于 2016-06-02 22:31
另外,我建议你测试的时候务必确保服务器内存充裕,该关的软件都关掉,至少也要用一台专业一点的物理服务器 ...

同意jack的说法。楼主你的测试方法有大问题哦
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
你的测试应该有很强的针对性才有意义,比如:你以你所了解的某型物理服务器为基点,对它进行压力测试,然后以此为依据得出你的负载结论。

其实程序本身的性能只是一方面,服务器的物理和操作系统性能才是整个测试的基础,否则没有任何意义的。
能部署一台独立的物理机吗?你应该把服务端部署到一台干净的机器上进行针对性测试,而且测试结果应该是以此物理机的性能标准为基准,这数据才有意义。因为真正部署时目标服务器的性能指标很可能是不一样的,这需要你对基本的服务器型号、性能等有一个经验认之。
比如你看群主的压力测试报告上测试机的型号都有交待,大家看到这个后心里就有参照点了。
引用:JackJiang 发表于 2016-06-02 22:31
另外,我建议你测试的时候务必确保服务器内存充裕,该关的软件都关掉,至少也要用一台专业一点的物理服务器 ...

Jack你好,我在im方面也是初学者,之前也没有做过服务器相关的,因此在表述上有点欠缺。
我的本意是测试单台机器(i7 4790,16G)在满负载条件下udp吞吐量,现阶段没有专业物理服务器可供使用,只能测试下现有的台机。
所遇到的问题是,无法满负载测试。win7环境,吞吐量为3800左右,另一台win10,吞吐量为6000左右,硬件条件均为i7 4790 ,16g内存,硬件占用率使用任务管理器里直接观看,都在40%以下,不知道是哪边的问题。
使用回环ip只是省掉路由部分,之前两台机器测试结果也是如此。
诸位大大的回复也仔细看了
负载和硬件性能密切相关,我这边也只是想测试一下现有条件下的满载性能,内存空余较多却不能继续提升,求教瓶颈所在
我的建议是:
1)一定要用独立的机器部署服务端,因为服务端经过极端的性能优化,但同一台机器上同时跑压力测试客户端的话,这个客户端对整个机器的资源争用和性能影响很可能会大于服务端,因为客户端可能没人对它进行什么性能优化,因为这没必要。如果这个都不能搞定,压测就会成为笑话。
2)我估计你很可能连服务端的log输出都没有关闭,建议排查一下。
3)建议你在服务端开一个jProfile,通过jProfile可以很明显地发现性能瓶颈问题。
4)如果以上都做好了,仍然是这么低的性能,建议你去找MINA的官方UDP demo(官方下载包里有),用最简单的方式来验证这个demo的性能,看看它的表现,如果它的性能也同样很低,那你基本可以肯定是你机器或者其它瓶颈所在,而非程序本身。

理论上吞吐效率达不到3万/s以上,都是不正常的。而你现在只有3000!

评分

1

查看评分

引用:JackJiang 发表于 2016-06-03 09:55
我的建议是:
1)一定要用独立的机器部署服务端,因为服务端经过极端的性能优化,但同一台机器上同时跑压 ...

[已解决] MobileIMSDK的udp压力测试无法达到单机上限的问题_40000.jpg

关掉服务器log,测试另一台机子达到预期效果,感谢大大们的热心回复

点评

JackJiang  说:
Nice!  (6 年前)
引用:Jpor 发表于 2016-06-03 11:05
关掉服务器log,测试另一台机子达到预期效果,感谢大大们的热心回复

不错!
看到吞吐上了4万我就替楼主松了一口气,终于找到问题所在了。。。。
ok了,顶一个!
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
顶一个
谢谢

顶一个
hello,第一次接触服务器这方面的东西,data里应该填写什么样的数据呢
引用:海贼 发表于 2018-02-05 20:30
hello,第一次接触服务器这方面的东西,data里应该填写什么样的数据呢

自已在服务端把Log打出来,抓一个协议样本就行了
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部