こんにちは。前回はApache Jmeter の構築の記事を書いてみましたので、今回はApache Jmeter のController Worker 構成での負荷試験の構築手順と実際に何か負荷をかけてみることを行いたいと思います。
前提
- jmeter controller server が用意できていること
- jmeter worker server が用意できていること
- vagrant 環境を立てられること (or どこか自分の実験サイトが使えること)
- httpd or nginx などのweb サーバーが動いていること
(※絶対に他の人が運営しているサイトに対しては実施しないでください)
まだ、作成できていない人は前回の記事を参考にしてみてください!!
上の記事の手順でjmeter などのセットアップをして、後はAMI で複製するとcontroller とworker サーバーが完成します!
構成

今回はターゲットサイトではEC2 の記述ですが、vagrant を使用しています。どちらを使っても実施可能になっているので、自分がやりやすいやり方で問題ないです!
構成は至ってシンプルですね。次は負荷をかけるまでの手順について書いていきます。
手順
手順を見ていきましょう!
共通の設定
Controller ・slave の両方でSeliux がpermissive にする必要があります!
setenforce 0
getenforce
=> permissive
今回はAWS を使用しているので、セキュリティグループでのIP 許可が必要です。なので、これらを許可してssh 接続ができることとjmeter 間の通信ができるようにしておく必要があります。
セキュリティグループ名 | 許可IP | 備考 |
jmeter-controller-sg | 10.0.0.0/16 | localhost 通信(TCP 全て) |
your IP | ssh 通信 | |
jmeter-worker-sg | 10.0.0.0/16 | localhost 通信(TCP 全て) |
今回は10.0.0.0/16 としていますが、自分の設定した、local IP の値によって変更してください。
そして、セキュリティグループの設定が終わったら、互いにssh 接続を試しておくと詰まったときの切り分けがしやすいかもしれません。
Controller 側の設定
まずは、worker との接続がとれるような設定をしていきます!worker がどのIP かを教えてあげるために、remote_hosts のIP にworker のPrivate IP を入れてあげます。複数ある場合は、「,」で追加することもできますが、今回はworker が一つなので、1 IPです。
# jmeter properties
vim jmeter.properties
# remote host 設定
remote_hosts=10.0.XX.XX
Worker 側の設定
worker 側は特別なにか設定がいるわけではないですが、jmeter-server を立ち上げておく必要があるので、その立ち上げを実施します。今回は、systemd とかは使ってないですが、本番でやるときは利便性などを考えて、systemd とかに登録しておくと便利かもしれません。
# jmeter server 起動
/usr/local/src/apache-jmeter-5.6.3/bin/jmeter-server &
ps などでプロセスを確認してみて、立ち上がっているようだったらおっけーです。
ここまで来ると負荷をかける準備ができたので、jmx ファイルを準備して、負荷をかけていきます。
今回は負荷対象にvagrant を用意してあるので、そのサーバーに対して負荷をかけていきます。
jmx を軽く紹介
今回はテストで実施するのみなので、一回負荷をかける程度になります。
スレーブグループについて
スレッドグループです。このファイルではどれくらいのスレッドで、何回ループを回すとか、どれくらいの期間で最大スレッド数に達するかを決めるramp up を指定することができます。結構負荷試験において大事なところなので、公式ドキュメントを読むことをお勧めします。

HTTP REQUEST について
下のスクリーンショットが、HTTP REQUEST です。ここでは、負荷をかける対象について登録します。http https なのかや、ポート番号などを定義したり、パラメータが必要であれば、パラメータも定義することが可能です。今回は特にパラメータはもさせないので、リクエストのみを指定しました。

ここまで、設定してjmx として保存できたら、サーバーにscp 転送して送信してください。
負荷試験実施
controller 側にssh して、以下のコマンドを実行してください!
# jmeter controller 実行コマンド
./jmeter -n -t /home/ec2-user/wordpress-test.jmx -l result.jtl -r
オプション | 説明 | 備考 |
-n | Non GUI での実行 | CLI で実行するときはこのオプションが必要です |
-t | 対象のjmx ファイルの指定 | |
-l | 結果出力のファイル指定 | |
-r | remote のR なので、worker サーバーで実行します |
実行した後に、下記のようにend of run と出力されれば、問題なく成功しています。
Creating summariser <summary>
Created the tree successfully using /home/ec2-user/wordpress-test.jmx
Configuring remote engine: 10.0.XX.XX
Starting distributed test with remote engines: [10.0.XX.XX] @ 2025 Jun 29 05:08:26 GMT (1751173706369)
Warning: Nashorn engine is planned to be removed from a future JDK release
Remote engines have been started:[10.0.XX.XX]
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445
Tidying up remote @ 2025 Jun 29 05:15:00 GMT (1751174100573)
... end of run
まとめ
ここまで紹介したことが一連の負荷試験のざっくりとした流れになります。本番ではきっと2台以上のworker サーバーが必要だったり、メモリが足りなかったりする可能性もあるので、チューニングが必要になる可能性があります。
環境を作成することは結構簡単にできたりするので、皆さんも一度やってみてください!!
コメント