Mac から GCE 上の JMeter サーバークラスタを制御する
概要
GCE 上に JMeter サーバークラスタを作成し、ローカルの Mac 上の JMeter クライアントから制御し、結果を取得してみたのでメモ。
こんな感じのイメージ
手順
とりあえず、jmeter server を 2 つ用意してみる
GCE 上の jmeter server
jmeter-1
gcloud compute instances create jmeter-1 \ --zone asia-northeast1-a \ --image-family=centos-7 --image-project=centos-cloud \ --machine-type n1-standard-1 # f1-micro ではメモリが足りず
gcloud compute ssh jmeter-1 --zone asia-northeast1-a \ --ssh-flag="-L 24000:127.0.0.1:24000" \ --ssh-flag="-R 25000:127.0.0.1:25000" \ --ssh-flag="-L 26000:127.0.0.1:26000"
sudo yum -y update sudo yum -y install wget sudo yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 java -version
# @see: https://jmeter.apache.org/download_jmeter.cgi wget http://ftp.tsukuba.wide.ad.jp/software/apache//jmeter/binaries/apache-jmeter-4.0.tgz tar xvzf apache-jmeter-4.0.tgz mv apache-jmeter-4.0 ~/jmeter
jmeter の設定を変更
vi jmeter/bin/jmeter.properties server_port=24000 server.rmi.localport=26000 # JMeter 4.0 から RMI で SSL を利用するのがデフォルトになったらしいが、cert key の設定が面倒だったので SSL を利用しない。https://jmeter.apache.org/usermanual/remote-test.html#setup_ssl server.rmi.ssl.disable=true
起動
jmeter/bin/jmeter-server -Djava.rmi.server.hostname=127.0.0.1
jmeter-2
gcloud compute ssh jmeter-2 --zone asia-northeast1-a \ --ssh-flag="-L 24001:127.0.0.1:24001" \ --ssh-flag="-R 25000:127.0.0.1:25000" \ --ssh-flag="-L 26001:127.0.0.1:26001"
jmeter の設定を変更
vi jmeter/bin/jmeter.properties server_port=24001 server.rmi.localport=26001 server.rmi.ssl.disable=true
ローカル Mac 上の jmeter クライアント
brew install jmeter
cp /usr/local/Cellar/jmeter/4.0/libexec/bin/jmeter.properties /usr/local/Cellar/jmeter/4.0/libexec/bin/jmeter.properties.org vi /usr/local/Cellar/jmeter/4.0/libexec/bin/jmeter.properties remote_hosts=127.0.0.1:24000,127.0.0.1:24001 client.rmi.localport=25000 mode=Statistical server.rmi.ssl.disable=true
起動
/usr/local/Cellar/jmeter/4.0/libexec/bin/jmeter.sh -Djava.rmi.server.hostname=127.0.0.1
負荷試験実行
テストシナリオのファイルを開き、実行 -> 全て開始(リモート)
で実行する。