原文由周小丽发表于TesterHome社区,点击原文链接可以和作者直接交流
如果 jmeter 达不到预期的性能指标,可查看压测机器的性能,是否因为内存、网络、cpu 占用导致的瓶颈。
一、端口不够用
压测的线程数过多时,或者线程没有及时释放,会导致 TCP/IP 连接端口已达到最大限制,jmeter 会报错
【报错信息】Non HTTP response code:java.net.BindException
【原因分析】windows 提供给 TCP/IP 连接的端口号是 1024-5000,并且要四分钟左右循环回收,这就导致我们短时间内频繁调用大量请求时,端口号被占满
【解决方案】修改系统的最大端口连接数

TCP 客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起 3977 个 Socket 连接。我们可以修改如下注册表来调整这个动态端口的范围
[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
MaxUserPort = 5000 (Default = 5000, Max = 65534)
二、线程数
【异常现象】大量请求出现连接失败,或者压测的错误率异常高,但服务器性能并没上去
【原因分析】线程数已达到瓶颈
【解决方案】循环创建线程,勾选 keep-alive(一般默认是勾选的),可复用线程,即一个 http 请求处理完之后,另外一个 http 请求会从

当JMeter在进行性能测试时未达到预期效果,可能是由于端口限制、线程数过多或内存不足导致。端口限制问题可通过调整系统最大端口连接数解决;线程数过多可能导致连接失败或错误率上升,可考虑循环创建线程和使用keep-alive;内存不足则可能产生.hprof文件,可以通过增大JVM堆内存设置缓解。此外,建议定期清理日志文件和使用分布式压测。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



