Jmeter跑性能脚本遇到的常见问题

本文总结了一些Jmeter执行性能测试时常见的问题。通常请求报java错误时,就需要在自己脚本或是运行环境上找原因了。

1. TCP连接数耗尽

  1. 在执行Jmeter性能测试脚本过程中,当线程数>500就会遇到这几种错误,而且占总数很多。
    Non HTTP response code: java.net.BindException/Non HTTP response message: Address already in use: connect
    Non HTTP response code: java.net.ConnectException/Non HTTP response message: Connection refused: connect
    包括不限于上面2个。

在这里插入图片描述
2. 这种情况还又一种表现是服务器的CPU忽高忽低。那是因为你的机器本身就无法把请求发出去了。像左图这样。

在这里插入图片描述
3. 这时由于windows系统会默认TCP连接数不够用。我知道的说法是默认连接数只有1000,每4分钟回收一次,不确定具体数值,但确实需要在注册表里修改最大连接数与延迟时间。

  1. Win + R, 运行regedit
  2. 进入 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Performance
  3. 对着Performance右键,新建QWORD(32位) ,名称: MaxUserPort, 值: 65534(十进制)
  4. 对着Performance右键,新建QWORD(32位) ,名称: TcpTimedWaitDelay, 值: 30(十进制)

在这里插入图片描述

  1. 调好之后再跑一下,效果立竿见影。

在这里插入图片描述

2. JVM内存溢出

  1. 有的时候,执行脚本过程中,突然cmd框里不动了,然后又一个报错。还会在jmeter程序根目录生成一个几百兆的.h***开头的文件。(具体报错和文件名记不清了,以后补上)。通常多线程组,多用户数,长时间,客户机内存小会产生这样的问题。这是因为启动Jmeter时,JVM分配给jmeter的内存不足以支撑跑完这个脚本。

  2. 我们可以修改jmeter.bat文件里的相关参数来避免这个问题。

  1. 编辑你平时启动jmeter gui的那个文件,也就是/bin/jmeter.bat文件。
  2. 搜索xms找到对应的这一行,根据你的实际情况修改这3个参数。(个人本地8G配置如图)
    xms: 初始内存
    xmx: 最大内存
    MaxMetaspaceSize: 最大内存的永久保存区域

在这里插入图片描述

3. 客户机所在网络带宽限制

最近在测试一个项目。要求并发非常高。我用5台机器模拟6k并发,效果是最好的。达到1w并发时,TPS下降的厉害,响应时间也惨不忍睹。但是通过查看服务器CPU之后,发现CPU并不高。后来排查到原因是因为,我的5台客户机1w个线程把公司局域网带宽占的满满的。自然就网速非常的慢了。(发现的契机是跑脚本时,公司wifi访问系统奇慢,但4g访问就正常)。所以就算有足够的客户机参与分布式测试。可能带宽的限制也会影响最终结果的准确性。
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值