jmeter.bat配置(主要关于OOM)

  jmeter.bat是jmeter在windows系统下的启动文件。在使用jmeter压测,线程数设置过多时可能会报内存溢出(Out Of Memory Error),这时候可以去尝试调整一下jmeter.bat文件里面默认的配置。

  注:我使用的jmeter版本是3.2,有时候在Q群看到有人问安装一个插件之后为什么报错,这时候需要注意是不是版本兼容性问题,很多插件都比jmeter版本滞后了。

1、堆值(Heap)

一般来说,堆值Heap最多设置为物理内存的一半,默认为512M。如果此值超过物理内存的一半,jmeter运行速度会变慢,甚至会出现“内存溢出”错误。(Xms、Xmx的含义看下面)

我设置的为【set HEAP=-Xms256m -Xmx1024m】。说明:jdk32位的电脑Xmx不能超过1400,最高为1378。

----------------------------------------------------------分割线---------------------------------------------------------------

如果服务器端报错“内存溢出”,进入Tomcat,修改JVM的maxheapmemory。在%CATALINA_HOME%\bin目录下,catalina.bat文件:echo Using CATALINA_BASE: %CATALINA_BASE%之前,加上:

set JAVA_OPTS=%JAVA_OPTS% -server –Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M

参数说明:

Xms:Tomcat中JVM内存初始设置参数,默认为512M;

Xmx:Tomcat中JVM内存最大设置参数,默认为512M;

-XX:PermSize=256M
设置永久域(非堆内存)的初始值,默认是物理内存的1/64, 建议不要超过256M;
-XX:MaxPermSize=512M
设置永久域的最大值,默认是物理内存的1/4,建议修改为512M;

----------------------------------------------------------------------------------------------------------------------------------

2、GC相关设置

这个是JVM中GC算法的一个相关设置,其中:

1)MaxGCPauseMillis:每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。(此参数请谨慎使用!)

2)G1ReservePercent:使用g1收集器时设置的保留java堆大小,防止JVM在回收存活或者晋升对象的时候,栈区域溢出发生失败。范围是0到50,默认是10%。

 

3、发生OOM时,生成分析文件

在发生OOM时dump出当前的内存转储快照,生成dump文件(可用mat分析),默认存储在jvm运行环境目录。后面也可以添加参数-XX:HeapDumpPath=/path/heap/dump,说明dump文件存储的路径。

 

posted @   zzz紫川  阅读(3841)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示