centos上jmeter资源如何分配
导读:CentOS 上 JMeter 资源分配与调优指南 一 内存与 JVM 分配 运行方式:压测务必使用非 GUI 模式,避免 GUI 监听器占用大量内存与 CPU。命令示例:jmeter -n -t script.jmx -l result...
CentOS 上 JMeter 资源分配与调优指南
一 内存与 JVM 分配
- 运行方式:压测务必使用非 GUI 模式,避免 GUI 监听器占用大量内存与 CPU。命令示例:jmeter -n -t script.jmx -l result.jtl。执行前先在 GUI 完成脚本调试。
- 堆内存设置:编辑 JMeter 安装目录 bin/jmeter(或 jmeter.sh)中的堆参数。将 -Xms 与 -Xmx 设为相同值,通常取机器可用内存的约 50%,且不超过80%;过大或过小都会影响 GC 与整体吞吐。示例:JVM_ARGS=“-Xms4g -Xmx4g -XX:MaxMetaspaceSize=512m”。若遇到内存不足报错(如 Java HotSpot 无法提交内存),需适当增大堆或释放系统内存。
- GC 选择:在 JVM_ARGS 中增加 -XX:+UseG1GC,减少停顿并提升高并发下的稳定性。
二 操作系统资源与网络
- 文件句柄与进程数:提升单机能打开的文件描述符与进程数上限。临时:ulimit -n 102400;永久:在 /etc/security/limits.conf 增加如 * soft/hard nofile 65536、* soft/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 生效。
- 运行环境与网络:优先在内网压测以降低网络抖动;监控压力机资源(CPU、内存、网络、磁盘 I/O),避免压力机自身成为瓶颈。
三 JMeter 内部负载与结果产出
- 监听器与输出:压测时仅保留必要的数据写入,避免 View Results Tree 等 GUI 监听器;使用 Simple Data Writer 输出 CSV/JTL,压测结束后再用 jmeter -g result.jtl -o report 生成 HTML 报告。
- 连接与定时器:启用 Keep-Alive 复用连接;使用 Throughput Shaping Timer 或 Concurrency Thread Group 精准控制 TPS/并发;必要时跳过静态资源,减少无效负载。
- 参数化与运行时控制:用 __P() 函数将线程数、循环次数、Ramp-Up等参数化,便于在不同环境快速复用脚本与批量基线测试。
四 分布式扩展与容量规划
- 何时扩展:单机达到 CPU/网络/端口/内存 瓶颈或需模拟更大并发时,使用 Master–Slave 分布式扩展压力机规模。
- 快速配置:Slave 端在 jmeter.properties 将 server.rmi.ssl.disable 设为 true;在 jmeter-server 或 jmeter.properties 设置 -Djava.rmi.server.hostname=本机IP;必要时固定 server.rmi.localport 与 server_port(默认 1099)。Master 端在 remote_hosts 填写 “ip:port”,用 jmeter -n -t script.jmx -R ip1:port,ip2:port -l result.jtl -e -o report 启动远程执行。
五 快速检查清单与示例配置
-
检查清单
- 已用非 GUI 模式执行,监听器精简,仅保留必要写入。
- 堆内存设置合理(如 -Xms4g -Xmx4g),并启用 G1 GC。
- limits.conf 与 sysctl.conf 已优化(文件句柄、端口范围、TCP 复用)。
- 脚本已参数化(线程数、循环、Ramp-Up),定时器/监听器配置符合目标 TPS/并发。
- 分布式场景下,Master/Slave 网络互通、端口开放、hostname 配置正确。
-
示例配置
- 单机上 4C8G 压力机:JVM_ARGS=“-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxMetaspaceSize=512m”
- limits.conf 关键行:* soft nofile 65536、* hard nofile 65536、* soft nproc 65565、* hard nproc 65565
- sysctl.conf 关键行:net.ipv4.tcp_tw_reuse=1;net.ipv4.tcp_fin_timeout=30;net.ipv4.ip_local_port_range=1024 65000
- 执行命令:jmeter -n -t test.jmx -l result.jtl;压测后:jmeter -g result.jtl -o report
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos上jmeter资源如何分配
本文地址: https://pptw.com/jishu/763502.html
