JMeter on Ubuntu — GUIとCLIで動かすApache負荷テスト完全版

開発環境

この記事のポイント

  • JMeter は apt では入らない。Apache公式サイトから .tgz をダウンロードしてインストールする
  • Ubuntu 24.04 なら openjdk-21-jdk、Ubuntu 22.04 なら openjdk-17-jdk を先に入れる(JMeter 5.x は Java 11 以上が必須)
  • CLIモード(-n オプション)で動かすと GUI なしでサーバーに負荷をかけられ、CI にも組み込みやすい
  • 実測テスト(httpbin.org、3スレッド×3ループ)では平均応答時間 517ms、エラー率 0% を確認
  • bin/jmeter -g result.jtl -o report/ でHTMLダッシュボードを生成できる

負荷テストのツールを探していると、必ず名前が出てくるのが Apache JMeter です。Webサービスのレスポンスタイム計測、スレッド数を増やしてのスケール確認、API エンドポイントへの連続リクエストなど、幅広い用途に使われています。

ただ、Ubuntu で JMeter を動かす際に詰まりやすい点があります。apt search jmeter を打っても出てこないので、パッケージがないのかと思いがちです。実際には 公式サイトから直接ダウンロードする形式のツールで、Java のインストールとパスの設定さえ済ませれば動きます。

この記事では Ubuntu 24.04 LTS での実際のインストール手順と、GUI・CLI 両モードの動かし方をまとめます。CLIテストは実際に docker run ubuntu:24.04 で試した結果を載せています(2026-06-22 実測)。

前提環境

動作確認環境

Ubuntu 24.04 LTS(Docker公式イメージ ubuntu:24.04 で実行)、OpenJDK 21.0.11、JMeter 5.6.3。Ubuntu 22.04 では OpenJDK 17.0.19 のインストールを確認しており、JMeter 5.6.3 の動作要件(Java 11 以上)を満たしています。

JMeter はプラットフォーム問わず動く Java アプリなので、まず Java から入れます。

Java をインストールする

手順1:Ubuntu バージョンに合った Java を選ぶ

JMeter 5.6.3 は Java 11 以上に対応しています。Ubuntu のバージョンによって推奨 Java が異なります。docker で両バージョンを実測した結果がこちらです。

Ubuntu 22.04 vs 24.04 の Java バージョン比較(実測)
Ubuntu 22.04 vs 24.04 の Java バージョン比較(実測)

Ubuntu 24.04 では OpenJDK 21 が標準なので、そちらを入れます。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt install -y openjdk-21-jdk wget
The following NEW packages will be installed:
openjdk-21-jdk openjdk-21-jdk-headless wget …
Setting up openjdk-21-jdk-headless (21.0.11+10-1-24.04.2-Ubuntu)
Setting up openjdk-21-jdk (21.0.11+10-1-24.04.2-Ubuntu)

手順2:Java のバージョンを確認する




ubuntu@linuxlab: ~
$ java -version
openjdk version “21.0.11” 2026-04-21
OpenJDK Runtime Environment (build 21.0.11+10-1-24.04.2-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.11+10-1-24.04.2-Ubuntu, mixed mode, sharing)

Ubuntu 22.04 の場合は openjdk-17-jdk を入れます(同じ手順で、パッケージ名だけ変わります)。

JAVA_HOME の設定について

Ubuntu でaptからOpenJDKを入れた場合、/usr/lib/jvm/java-21-openjdk-amd64 にインストールされます。JMeter は自動で検出するので、通常は JAVA_HOME を手動設定しなくても動きます。

JMeter をダウンロードしてインストールする

JMeter は Apache のサイトから .tgz ファイルをダウンロードして展開するだけで動きます。インストーラーはありません。

JMeter 5.6.3 インストール実行ログ(Ubuntu 24.04 実測)
JMeter 5.6.3 インストール実行ログ(Ubuntu 24.04 実測)

手順3:JMeter をダウンロードして展開する




ubuntu@linuxlab: ~
$ cd ~
$ wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz
85350K ………. ….. 100% 26.5M=9.0s
‘apache-jmeter-5.6.3.tgz’ saved [87398430/87398430]
$ tar xzf apache-jmeter-5.6.3.tgz
$ ls apache-jmeter-5.6.3/
LICENSE NOTICE README.md bin/ docs/ extras/ lib/ licenses/ printable_docs/

手順4:パスを通す

毎回フルパスを打つのは面倒なので、~/.bashrc に追記します。




ubuntu@linuxlab: ~
$ echo ‘export JMETER_HOME=~/apache-jmeter-5.6.3’ >> ~/.bashrc
$ echo ‘export PATH=$PATH:$JMETER_HOME/bin’ >> ~/.bashrc
$ source ~/.bashrc
$ jmeter –version
_ ____ _ ____ _ _ _____ …
Version 5.6.3

これでどのディレクトリからでも jmeter コマンドが使えるようになります。

JMeter の構成と標準コンポーネント

展開したディレクトリの lib/ext/ にプロトコル別の JAR が入っています。HTTP・JDBC・JMS・FTP など、最初から幅広いプロトコルに対応しています。

JMeter 5.6.3 標準コンポーネント一覧(実測)
JMeter 5.6.3 標準コンポーネント一覧(実測)

パッケージ全体のサイズは 151MB(実測)。追加プラグインは JMeter Plugins Manager から導入できます。

GUI モードで動かす

GUI は主にテストプラン(.jmx ファイル)を作成・編集するときに使います。本番のテスト実行はCLIモードが推奨です。

手順5:GUI を起動する




ubuntu@linuxlab: ~
$ jmeter
WARN StatusConsoleListener The use of package scanning to locate plugins is deprecated…
Jun 22, 2026 … INFO: Created user preferences directory.
[GUIが起動する]

VPS や Docker でGUIが起動しない場合

SSH接続先やヘッドレスサーバーでは X11 が使えないため GUI は起動しません。ローカルの Ubuntu デスクトップで .jmx を作成し、サーバー上では CLI モードで実行するのが一般的な使い方です。

テストプランの基本構成

GUIでテストプランを作成する際の基本的な流れは次の通りです。

  1. Thread Group(スレッドグループ)を追加:仮想ユーザー数・ランプアップ時間・ループ数を設定
  2. HTTP Request Samplerを追加:テスト対象のURL・HTTPメソッド・パスを設定
  3. Listener(リスナー)を追加:View Results Tree・Summary Report など
  4. File → Save.jmx ファイルとして保存

作成した .jmx ファイルをCLIモードで実行するのが本番スタイルです。

CLIモードで実行する(本番推奨)

JMeterは GUI より CLI モード(-n オプション)での実行を推奨しています。メモリ消費が少なく、SSH経由のサーバー上でも動かせます。

手順6:CLIでテストを実行する

実際に Ubuntu 24.04(docker run)の JMeter 5.6.3 で httpbin.org に対して 3スレッド × 3ループ のテストを実行しました。




ubuntu@linuxlab: ~/apache-jmeter-5.6.3
$ jmeter -n -t test_httpbin.jmx -l result.jtl -j jmeter.log
Creating summariser <summary>
Created the tree successfully using test_httpbin.jmx
Starting standalone test @ 2026 Jun 22 02:30:02 GMT
summary + 1 in 00:00:01 = 1.2/s Avg: 774 Min: 774 Max: 774 Err: 0 (0.00%)
summary + 8 in 00:00:02 = 5.3/s Avg: 485 Min: 168 Max: 1193 Err: 0 (0.00%)
summary = 9 in 00:00:02 = 3.8/s Avg: 517 Min: 168 Max: 1193 Err: 0 (0.00%)
Tidying up … @ 2026 Jun 22 02:30:04 GMT
… end of run
JMeter CLI テスト実行結果(実測: httpbin.org、3スレッド×3ループ)
JMeter CLI テスト実行結果(実測: httpbin.org、3スレッド×3ループ)

実測値:9リクエスト、平均応答時間 517ms、最小 168ms、最大 1193ms、エラー率 0.00%、スループット 3.8 req/s。

main オプションの意味は次の通りです。

オプション 意味
-n 非GUIモード(CLI)で実行
-t test.jmx テストプランファイルを指定
-l result.jtl テスト結果をJTLファイルに保存
-j jmeter.log JMeter のログファイルを指定
-e テスト後にHTMLレポートを生成(-o と組み合わせる)
-o report/ HTMLレポートの出力先ディレクトリ

HTML レポートを生成する

JMeter の強みのひとつが HTMLダッシュボードレポート です。.jtl ファイルさえあれば、グラフ付きのWebページを生成できます。

手順7:HTML レポートを生成する




ubuntu@linuxlab: ~
$ mkdir -p report
$ jmeter -g result.jtl -o report/
Jun 22, 2026 … INFO o.a.j.r.d.ReportGenerator: Creating report
Jun 22, 2026 … INFO o.a.j.r.d.ReportGenerator: Report generated
$ ls report/
content/ index.html sbadmin2-1.0.7/ statistics.json
JMeter HTML ダッシュボードレポート(Playwright で確認)
JMeter HTML ダッシュボードレポート(Playwright で確認)

report/index.html をブラウザで開くとグラフ付きのダッシュボードが表示されます。レスポンスタイムの時系列グラフやスループットの推移など、テスト実行後の分析に便利です。

テスト実行と同時にレポートを生成したい場合は -e -o report/ をつけます。




ubuntu@linuxlab: ~
$ jmeter -n -t test.jmx -l result.jtl -e -o report/
summary = 9 in 00:00:02 = 3.8/s Avg: 517 Err: 0 (0.00%)
… end of run
Generating report: report/

JVM ヒープ設定を調整する

JMeter のデフォルトヒープは -Xms1g -Xmx1g(1GB)です。スレッド数が多い(500 以上など)大規模なテストでは、これを増やさないと OutOfMemoryError が出ます。

JMeter デフォルトヒープ設定と変更方法(実測)
JMeter デフォルトヒープ設定と変更方法(実測)

手順8:ヒープを増やす




ubuntu@linuxlab: ~
# 一時的に増やす(テスト実行時に環境変数で指定)
$ HEAP=”-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m” jmeter -n -t test.jmx -l result.jtl
Starting standalone test …
# 永続的に増やす(setenv.sh に書く)
$ cat bin/setenv.sh
export HEAP=”-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m”

VPS の RAM が 2GB ある環境なら -Xmx2g、4GB なら -Xmx4g が目安です。スレッド 1000 以上を回すなら RAM 8GB 以上の環境を使うと安定します。

よくあるエラーと解決策

①「java: command not found」と出る

Java が入っていないか、パスが通っていません。




ubuntu@linuxlab: ~
$ java -version
-bash: java: command not found
$ sudo apt install -y openjdk-21-jdk
$ java -version
openjdk version “21.0.11” 2026-04-21

②「Address already in use: 4445」

JMeter はデフォルトで 4445 番ポートを使います。複数の JMeter プロセスが起動している場合に起きます。




ubuntu@linuxlab: ~
# ポートを変えて実行
$ jmeter -n -t test.jmx -l result.jtl -Djmeter.engine.impl.stop.port=4446
Starting standalone test @ …

③「java.lang.OutOfMemoryError: Java heap space」

スレッド数が多すぎてヒープが足りない状態です。STEP の「ヒープ設定を調整する」を参照してください。大規模テストは RAM に余裕のある環境で動かすのが現実的です。

④ HTML レポート生成時「Directory is not empty」

出力先ディレクトリが既に存在するとエラーになります。




ubuntu@linuxlab: ~
An error occurred: Directory ‘report’ is not empty
# 一旦削除してから再生成する
$ rm -rf report/ && jmeter -g result.jtl -o report/

注意

rm -rf は中身を確認してから実行してください。間違ったディレクトリを指定すると復元できません。

VPS で大規模テストをするときの注意点

JMeter を VPS 上で動かして外部サービスに大量リクエストを投げる場合は、いくつか気をつけることがあります。

  • テスト対象のサービスオーナーに許可を取る:本番サービスへの無断負荷テストは DoS と見なされる場合があります
  • スレッドごとのコネクション消費に注意:スレッド 500 を作ると 500 本の TCP コネクションを同時に張ります。VPS のネットワーク上限を確認してください
  • 分散テストはマスター・スレーブ構成で:スレッド数を 1000 以上にしたい場合は、複数の JMeter サーバー(スレーブ)をまとめて制御するリモートテスト機能を使います

まとめ

Ubuntu 24.04 での JMeter インストールと基本的な使い方をまとめました。

  • Java(OpenJDK 21)を入れてから JMeter 5.6.3 の .tgz を展開するだけで動く
  • GUI はテストプラン作成用、実測は CLI モード(-n)が標準スタイル
  • 実測した httpbin.org テスト(3スレッド×3ループ)では平均応答時間 517ms、エラー率 0%
  • デフォルトヒープは 1GB。大規模テストでは HEAP 環境変数で増やす
  • jmeter -g result.jtl -o report/ でグラフ付き HTML レポートを生成できる

テスト対象が決まったら、次はスレッド数やランプアップ時間を変えながら閾値を探るのが負荷テストの本題です。まずはローカルの Docker コンテナで試して、VPS に移すと本番に近い数値が取れます。

VPS 選びに迷っている場合は も参考にしてください。

コメント

タイトルとURLをコピーしました