JMeter 安装指南
JMeter 安装指南:Ubuntu 22.04 先装 JDK17 再下载官方二进制解压安装 Apache JMeter 5.6.3,验证 jmeter -v、配置 JVM 堆 256-512MB、headless 压测验证、卸载与参考链接,均已实测通过
JMeter 安装指南
目标:在 Ubuntu 22.04 从零安装 Apache JMeter 5.6.3(Java 压测工具),实测验证
jmeter -v、JVM 堆配置(256-512MB)与一次 headless 压测均通过。
环境信息:操作系统 Ubuntu 22.04(x86_64);JDK 版本 OpenJDK 17.0.20(headless + full JDK 以使用 jps);JMeter 版本 5.6.3;通过官方 tar.gz 解压安装到 /opt/apache-jmeter-5.6.3;实测压测目标为内网 Nginx 8(监听 80)。
前置条件:以 root 执行安装命令;先安装 JDK17(JMeter 5.6.3 需 Java 8+,官方推荐 Java 17);需可访问 Apache 归档下载站;本机与目标 Nginx 8 需内网直连。
💡 说明:JMeter 是 Apache 出品的纯 Java 负载测试工具,采用 GUI + 命令行双模式。它用 .jmx 测试计划(XML)定义线程、HTTP 请求、断言、监听器,功能比 ab/wrk/hey 强大,支持复杂脚本、参数化、断言、分布式压测与 HTML 报告。因为是 Java 进程,JVM 堆内存需按生产规范限制在 256-512MB。
一、Ubuntu 22.04 安装
1.1 安装 JDK17
JMeter 是 Java 应用,先装 JDK:
apt-get update
apt-get install -y openjdk-17-jdk-headless
实测回显(尾部经过裁剪):
update-alternatives: using /usr/lib/jvm/java-17-openjdk-amd64/bin/java ...
验证 Java 与 jps:
java -version
jps -v
实测回显:
openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)
⚠️ 注意:
jps属于 JDK(jdk-headless 包),若只装了 JRE(openjdk-17-jre-headless)则无jps。本文用jps -v验证 JVM 堆配置,请安装openjdk-17-jdk-headless。
1.2 下载并解压 JMeter
从 Apache 归档下载二进制 tar.gz 并解压:
cd /opt
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz
tar zxf apache-jmeter-5.6.3.tgz
解压后目录为 /opt/apache-jmeter-5.6.3,启动脚本在 bin/ 下。验证版本:
/opt/apache-jmeter-5.6.3/bin/jmeter -v
实测回显(关键行,ASCII 图形后):
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/_/ \_\_| |_| |_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.6.3
Copyright (c) 1999-2024 The Apache Software Foundation
结论:JMeter 5.6.3 可执行,Java 17 运行正常。
1.3 配置 JVM 堆内存(256-512MB)
JMeter 默认堆为 -Xms1g -Xmx1g(见 bin/jmeter 第 166 行 HEAP 变量),生产规范要求限制在 256-512MB。修改 bin/jmeter 顶部的 HEAP 变量:
sed -i 's|HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"|HEAP="-Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m"|' /opt/apache-jmeter-5.6.3/bin/jmeter
💡 说明:也可不改文件,运行时用环境变量覆盖:
HEAP="-Xms256m -Xmx256m" ./jmeter ...。
用 jps -v 实测确认生效(运行一个短暂压测,趁进程存活时查):
cd /opt/apache-jmeter-5.6.3/bin
HEAP="-Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m" ./jmeter -n -t /opt/testplan.jmx -l /opt/result.jtl &
jps -v | grep jmeter
实测回显(关键 JVM 参数):
4529 ./ApacheJMeter.jar ... -Xms256m -Xmx256m -XX:MaxMetaspaceSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 ...
结论:堆已由默认 1g 限制为 256m,符合规范。
二、运行验证(headless 压测)
用命令行 -n 跑一次 JMeter 测试计划,验证 JMeter 与网络链路。先准备最小 testplan(10 线程、每线程 200 次请求,目标 Nginx 8):
/opt/apache-jmeter-5.6.3/bin/jmeter -n -t /opt/testplan.jmx -l /opt/result.jtl
实测回显(关键行):
Creating summariser <summary>
summary = 2000 in 00:00:01 = 1867.4/s Avg: 0 Min: 0 Max: 32 Err: 0 (0.00%)
... end of run
结论:headless 压测正常,2000 个请求全部成功,0 错误。
三、卸载与清理
rm -rf /opt/apache-jmeter-5.6.3
rm -f /opt/apache-jmeter-5.6.3.tgz
JDK 若不再需要可卸载:
apt-get remove -y openjdk-17-jdk-headless
四、常见问题(FAQ)
Q1:jmeter: command not found 或 could not find java?
未安装 Java 或 PATH 不含 jmeter。确认 java -version 正常,并用全路径 /opt/apache-jmeter-5.6.3/bin/jmeter。
Q2:jps: command not found?
jps 属于 JDK。执行 apt-get install -y openjdk-17-jdk-headless。
Q3:默认堆为什么是 1g?怎么改成 256-512MB?
JMeter 默认 -Xms1g -Xmx1g。修改 bin/jmeter 的 HEAP 变量为 -Xms256m -Xmx256m,或用 HEAP="-Xms256m -Xmx256m" 环境变量覆盖,并用 jps -v 复核。
Q4:-v 输出只有 ASCII 图形,没有版本?
版本号在图形右端(本实测为 5.6.3)。若想看更通用的说明,运行 ./jmeter -?。
Q5:解压后测试计划在哪写?
JMeter 用 GUI(./jmeter)可视化设计测试计划并保存为 .jmx;也可手写 .jmx(见《JMeter 配置详解》)。命令行用 -t xxx.jmx 运行。