周末加班做一个项目app的性能测试,单机负载时由于公司给每个人的网络带宽上传下载流量就1M,300个用户并发就已经网络IO饱和了,虽然和相关部门协调过资源问题,但是收效甚微,因此打算先用分布部署压力机解决这个问题,然而问题来了,之前用分布式进行远程压力测试进展顺利,但是这次死活不能获取远程压力机反馈的响应数据,看了看之前的经验总结,没有发现问题,查看日志也没有报错。当时的心情真是欲哭无泪,因此只能先去做其他事情。
问题描述:
在jmeter.properties文件的remote_hosts=配置各压力机ip值和端口号,启动jmeter控制机jmeter.bat和远程压力机jmeter-server.bat,选择待执行的jmx脚本,在“运行”中“远程全部启动”,远程端显示已开始和已结束,但是控制端未接受到任何响应信息,如下图所示:
控制端jmeter日志中显示“Remote engines have been started”,对jmeter GUI进行其他操作时一直提示
无法结束运行。
今天上午在处理完业务线人员任务安排,抽出时间又看了一下压力机的日志,发现返回的信息IP地址有问题,为此换个思路,把压力机换成控制机,之前的控制机转成压力机,当我在点击jmeter-server.bat后,发现dos窗口显示的ip并不是我本地连接的ip值,如下图所示:
突然想起来由于本机之前装个虚拟机Oracle VM VirtualBox,有一个虚拟网卡一直在启动着,发现问题后在适配器中将其禁用,如下图:
禁用后再次启动jmeter-server.bat显示的ip地址正确,为了防止压力机也存在多网卡问题,建议禁用没有作用的网卡。再次执行远程压力机,一切OK。
因为问了一些群里的jmeter同行,但是大家都没有遇到过或者没有解决,通过分析日志和改变思维,最终找出了答案,因此记录一下,也为其他有相同问题的朋友做个总结。