使用Apache JMeter测试基于epoll机制的高并发socket服务器
使用Apache JMeter测试基于epoll机制的高并发socket服务器
设备:
基于TCP的群聊服务器运行于服务器Ubuntu16,JMeter位于win10.
遇到的问题:
刚开始使用JMeter进行TCP测试时,报timeout错误。
问题的解决:
对于timeout的问题,首先判断是否已经将对应端口对外开发,检查了防火墙是否允许对端口的访问,使用了Telnet对端口进行测试,这个时候发现,使用127.0.0.1加端口号的时候可以得到正确的相应,但是使用服务器的ip地址的时候就是拒绝访问,于是判断可能是ip的原因,然后查到了ip地址的区别,将绑定ip从127.0.0.1换为了0.0.0.0,使用Telnet测试通过。
于是在JMeter上填写好对应的参数以后,终于成功了,但是测试的结果不是非常好。
测试结果:
刚开始将所有描述符都设置为了非阻塞模式,当连接数量超过6个以后就会报出Resource temporarily unavailable,解决方法:What can cause a “Resource temporarily unavailable” on sock send() command
,使用阻塞模式后恢复了正常,但是连接数量还是会受到限制。
关闭测试工具后:
只有6个进入了time_wait状态,其他的没有进入,有待研究。
参考文章:
JMeter的安装
Ubuntu端口打开
IP地址127.0.0.1与0.0.0.0的区别
Apache JMeter TCPSampler的使用及自定义
jmeter 的 tcp 测试核心知识点理解