乐趣区

关于压力测试:Jmeter-压测分析

原文由周小丽发表于 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 装置目录下产生大量很大的.hprof 文件
【起因剖析】这种.hprof 文件的产生是内存透露引起的
【解决办法】
windows 环境下,批改 jmeter.bat:
set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
PS:heap 最多设置为物理内存的一半,默认设置为 512M. 如果 heap 超过物理内存的一半,可能运行 jmeter 会慢,甚至呈现内存溢出,起因 java 比拟吃内存,占 CPU.

四、倡议

1、定期清理 jmeter 生成的日志文件:jmeter.log 和 jmeter-server.log(装置目录下)
2、压测线程数过大时,可采纳分布式压测,以命令行执行形式,别应用 GUI 形式压测

TPS: 事务数 / 秒 一个事务可能蕴含多个查问
QPS: 查问数 / 秒(每秒响应的申请数)
QPS(TPS):每秒钟 request/ 事务 数量
并发数:零碎同时解决的 request/ 事务数
QPS(TPS)= 并发数 / 均匀响应工夫

比如说报错率在某一次中超过了预期,则该值时曾经存在性能瓶颈;tps 达到某一值时,不升反降,则该值存在性能瓶颈;响应工夫的值开始迟缓减少起初剧增,则达到性能瓶颈。

以上是明天的分享,你学废了吗~
想学习更多干货常识和前沿技术?
想结识测试行业大咖和业界精英?
欢送关注 2022 MTSC 大会(第十届中国互联网测试开发大会)↓↓↓

退出移动版