JMeter 安装指南

JMeter 安装指南:Ubuntu 22.04 先装 JDK17 再下载官方二进制解压安装 Apache JMeter 5.6.3,验证 jmeter -v、配置 JVM 堆 256-512MB、headless 压测验证、卸载与参考链接,均已实测通过

性能测试与压测JMeter2026/10/09

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 运行。

五、参考链接