jmeter压测时内存问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter压测时内存问题相关的知识,希望对你有一定的参考价值。

参考技术A 记录1:监控,记录取样器信息等都会导致内存溢出,一般在压测时都选择:仅记录错误日志;

记录2:(当然压测时必须在非界面下,并调整内存)使用jmeter进行压测时遇到,一段时间后报内存溢出out of menmory导致jmeter卡死。

解决:

windows下,修改 jmeter.bat文件:

set HEAP=-Xms256m -Xmx256m

set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

set NEW:指的是每个线程占用的内存,假如一台机要产生1000个线程,一个请求请求的数据为200K,那么这里就要设置“1000*200/1024=195.32”,内存要设置128的倍数,那么这里就要设置“256m”。

set HEAP:指的是累积线程占用的内存,建议是new的4倍。

set PERM=-XX:PermSize=64m -XX:MaxPermSize=128m  :默认是64m,如果遇到,jmeter控制器没停掉,聚合报告数据也不动了,可以修改一下这里为:1024m--1024m。

10_jmeter压测时jmeter报错socket closed

参考技术A 问题原因:在 JMeter 下,发送 http 请求时,一般都是默认选择了 use keepAlive (这个是什么?看后面资料),这个是连接协议, JMeter 坑就在这里,默认勾选了这个(如果不勾选的话,也不会保存),但其配置 JMeter.properties 中的时间设置默认却是注销的,也是是说,不会等待,一旦连接空闲,则立马断开了,导致我们压测中出现了事务失败的情形!
结果方法:

问题原因:
Windows XP提供给 TCP/IP链接的端口为 1024-5000,并且要四分钟来循环回收他们。就导致我们在短时间内跑大量的请求时将端口占满了。

解决方法:

1.cmd中,用regedit命令打开注册表
2.在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下,
  1)右击parameters,添加一个新的DWORD,名字为MaxUserPort
   2)然后双击MaxUserPort,输入数值数据为65534,基数选择十进制
3.一定要记得重启电脑

以上是关于jmeter压测时内存问题的主要内容,如果未能解决你的问题,请参考以下文章

jmeter压测前清理内存

10_jmeter压测时jmeter报错socket closed

JMeter压测时如何在达到给定错误数量后停止测试

dubbo的jmeter压测时jar包的热加载/动态加载

记一次 JMeter 压测 HTTPS 性能问题

jmeter性能压测-性能压测常见问题分析之cpu过高/内存使用持续上升