JMeter在CentOS上的内存设置
导读:JMeter 在 CentOS 的内存设置与调优 一 设置方式与推荐值 方式一 修改启动脚本 bin/jmeter(通用且持久) 打开 $JMETER_HOME/bin/jmeter(Unix 脚本),找到形如:: "${HEAP:="...
JMeter 在 CentOS 的内存设置与调优
一 设置方式与推荐值
- 方式一 修改启动脚本 bin/jmeter(通用且持久)
- 打开 $JMETER_HOME/bin/jmeter(Unix 脚本),找到形如:
: "${ HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}的行,调整为所需值,例如:: "${ HEAP:="-Xms4g -Xmx4g -XX:MaxMetaspaceSize=512m"} "。建议将 -Xms 与 -Xmx 设为相同,避免运行期扩容抖动;-XX:MaxMetaspaceSize 用于控制元空间上限(JMeter 5.x 使用 Metaspace 而非 PermGen)。修改后需重启 JMeter 生效。
- 打开 $JMETER_HOME/bin/jmeter(Unix 脚本),找到形如:
- 方式二 通过环境变量或命令行临时覆盖
- 在 shell 中导出变量:
export JVM_ARGS="-Xms4g -Xmx4g"再执行jmeter ...;或在命令前直接追加参数:jmeter -Xms4g -Xmx4g -n -t test.jmx ...。命令行参数优先级高于脚本中的 HEAP 默认值,适合临时调大或不同场景快速切换。
- 在 shell 中导出变量:
- 容量建议
- 一般将堆设置为压力机物理内存的约一半起步;在资源充足且为专用压测机时,可提升到不超过约 2/3,避免挤占系统与其他进程。示例:机器内存 16GB,可先试 -Xms8g -Xmx8g,再结合监控与压测结果微调。
二 生效验证与监控
- 非 GUI 运行并观察日志:执行
jmeter -n -t your.jmx -l result.jtl,在启动日志中可见 JVM 参数回显,确认 -Xms/-Xmx 已生效。 - 图形化监控:使用 JConsole(JDK 自带)连接本地 JMeter 进程,在“VM 概要/内存”页查看堆大小与元空间配置是否与设定一致。
- 命令行快速检查:执行
ps -ef | grep jmeter或jcmd < pid> VM.flags(需 JDK),可查看实际生效的 JVM 标志。
三 常见报错与处理
- 报错示例
java.lang.OutOfMemoryError: Java heap space(堆不足)There is insufficient memory for the Java Runtime Environment(JVM 内存分配失败)
- 处理思路
- 先按上文将 -Xmx 提升到合理上限(如 4G/8G),并确保 -Xms=-Xmx;如仍 OOM,结合业务模型减少单次请求占用(如关闭/缩短结果保存、减少监听器)、分批执行或引入分布式压测。
- 若元空间不足(出现 Metaspace 相关 OOM),适度提高 -XX:MaxMetaspaceSize(如 512m/1g)。
四 与系统相关的配套调优
- 文件句柄与进程数(避免“Too many open files”)
- 临时:
ulimit -n 102400 - 永久:编辑 /etc/security/limits.conf,如:
* soft nofile 65536 * hard nofile 65536 root soft nofile 65536 root hard nofile 65536 * soft nproc 65565 * hard nproc 65565
- 临时:
- TCP 端口与内核参数(提升可发起连接能力)
- 编辑 /etc/sysctl.conf:
net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.ipv4.ip_local_port_range = 1024 65000 - 执行
sysctl -p使配置生效。
- 编辑 /etc/sysctl.conf:
五 分布式压测注意
- 内存设置需要在 Master 与每个 Slave 节点分别配置(各自 jmeter 脚本或 JVM_ARGS),否则容易出现某一节点先 OOM 导致整体压测失败。
- 远程属性传递:本地用 -J 设置属性,远程用 -G 下发到 Slave(如线程数、循环次数等),便于在不改脚本的情况下快速调整场景规模。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JMeter在CentOS上的内存设置
本文地址: https://pptw.com/jishu/761220.html
