hayashier Tech Blogs
  • hayashier Tech Blogs
  • Author's Books
    • 実践Redis入門 (日本語版)
    • 実践Redis入門 (한국어판)
  • Top Contents
    • Dive Deep Redis
    • Dive Deep Memcached
    • Kubernetes 入門
    • TCP 入門
    • TLS 入門
    • GPG 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
  • Containers
    • Docker 入門
    • Nomad 導入
    • Dockerを利用してさっと検証環境構築
  • Kubernetes
    • Kubernetes 入門
    • Kubernetes 導入 with Amazon Linux 2
    • EKSを利用してKubernetesでSpring MVCをデプロイ (NLB + Auto Scaling)
  • Load Balancer
    • ALB 認証 導入
    • TLS extensions support with ALB
    • ELB(CLB,ALB,NLB)の種類ごとのHTTPレスポンスの違い
    • ELB(CLB) で WebSocket 通信
  • RDBMS
    • PostgreSQL DBA 入門
    • RDBMS Benchmark Get Started
    • RDBMS サンプルデータ生成 Get Started
    • RDS PostgreSQL Extensions Get Started
    • RDBMS Engine Inspection for Troubleshooting
  • Redis
    • Dive Deep Redis ~ 入門から実装の確認まで
    • Dive Deep Redis Internals ~ GETコマンド実行時の動作 ~
    • RedisのString型は今でも本当に512MBが上限か?
    • Redis 公式ドキュメント まとめ
    • Redis / Memcached Source Code Reading - Overview -
  • Memcached
    • Dive Deep Memcached ~ 入門から実装の確認まで ~
    • Dive Deep Memcached ~ SETコマンド実行時の動作 ~
    • Memcached 公式ドキュメント まとめ
    • memtier_benchmark + memcached-tool の導入
    • Redis / Memcached Source Code Reading - Overview -
  • Hadoop
    • Hadoop Get Started
  • Networking
    • TCP 入門
    • TLS 入門
    • ksnctf: HTTPS is secure, Writeup (TLS 通信解読)
    • オンプレ側ルーター(Cisco 1812J, Juniper SRX210, YAMAHA RTX 1210)から Direct Connect へ BGP 設定
  • Software
    • アルゴリズムとデータ構造 入門
    • デザインパターン 入門
    • ソフトウェアテスト 入門
  • System Admin
    • Shell Script 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
    • GPG 入門
    • Operation Misc
  • Development
    • ローカル環境のプログラミング言語のバージョンを切り替え macOS
    • /usr/local/Cellar/pyenv/1.2.21/libexec/pyenv: No such file or directoryのエラーの対処方法
  • AWS
    • AWS Misc
    • AWS CLI, AWS SDKのリトライ処理の実装について
    • AWS CLI バージョンアップでエラー発生を解消
    • Elastic Beanstalkで稼働しているアプリケーション(Ruby, Sinatra)をAmazon Linux AMIからAmazon Linux2へ移行
    • Elastic Beanstalkでインスタンス入れ替え後にnginxのデフォルトの画面が表示されてしまう問題の対応
    • Amazon Lightsail に SSL 証明書設置 with Let's Encrypt (自動更新)
    • Amazon Lightsailで10分で作るお手軽Markdownで書く独自ドメインのブログサイト構築
    • Lambdaをローカルでテスト(with Docker)
    • ECS + ALB でダウンタイムなしでデプロイ
    • `Repository packages-microsoft-com-prod is listed more than once in the configuration`のメッセージの解消方法
  • Others
    • Pandoc 導入
    • textlint + prh による文章校正
    • 紙書籍をPDFに変換
    • Sphinx 導入
    • さくっとPocketのブックマークをはてなブックマークに移行
    • Macが突然起動しなくなった話
    • Macでターミナルが開かない (zsh編)
    • ホスト型 IDS Tripwire とネットワーク型 IDS Snort の導入 with CentOS 6
    • JMeter 導入
    • Squid 導入 with Amazon Linux AMI
    • Spring MVCを導入 (+ MySQL, Redis)
    • 外資系企業で働いている場合の確定申告方法 (RSU考慮)
Powered by GitBook
On this page
  • JMeter 導入
  • JMeterのインストール
  • 動作確認
  • エラー
  • 参考
  1. Others

JMeter 導入

JMeter 導入

テスト計画はローカルのMacでGUI上で作成を行い、実際に負荷をかけることはAmazon Linux AMI上からCLIで実行する手順となります。 実際に負荷をかけることはGUIからの実行は結果が不正確になることもあり非推奨なのでCLIで実行することを公式から推奨しています。 http://jmeter.apache.org/usermanual/get-started.html

Don't run load test using GUI mode !

JMeterのインストール

Mac

インストール後、起動

$ brew install jmeter
$ jmeter

Amazon Linux AMI

最新が5.1.1のものであることを確認 http://ftp.meisei-u.ac.jp/mirror/apache/dist/jmeter/binaries/

$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/jmeter/binaries/apache-jmeter-5.1.1.zip
$ unzip apache-jmeter-5.1.1.zip
$ sudo mkdir /usr/local/jmeter
$ sudo mv apache-jmeter-5.1.1 /usr/local/jmeter/
$ cd /usr/local/jmeter/apache-jmeter-5.1.1/bin/

jmeterファイルを編集

$ vim jmeter

159行目の以下の箇所をコメントアウト

## : ${HEAP:=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m}

Java 8のインストール

$ tar xvf jdk-8u221-linux-x64.tar.gz 
$ sudo mv jdk1.8.0_221/ /usr/local/src/
$ export PATH=/usr/local/src/jdk1.8.0_221/bin/:$PATH
$ export JAVA_HOME=/usr/local/src/jdk1.8.0_221

更新できたことを確認

$ java -Xmx16M -version
java version 1.8.0_221

動作確認

テスト計画作成

GUIで以下の内容でテスト計画作成 Thread Groupでリクエスト元のユーザーを想定した設定を行います。 - Thread Group Number of Threads (users): 1000 Ramp-Up Period (in seconds): 3600 Loop Count: Forever

Thread GroupからSamplerでHTTP Requestの設定を行い、リクエスト内容の設定を行います。 - HTTP Request Protocol: https Server Name or IP: alb.test.hayashier.com

結果確認のためListenerで例えば以下を追加します。

  • View Results Tree

  • View Results in Table

  • Graph Results

負荷試験を実行

作成したテスト計画となるjmxファイルをJMeterを実行するホストへ配置。 以下のコマンドで実行。

$ ./jmeter -n -t ~/test.jmx -l log.jtl

GUI上で、結果を確認するためにはListerでGraph ResultsやView Results Tree,View Results in Tableなど確認結果の形式を追加して、Filenameでログ出力したjtlの形式のファイルの読込を行って確認することができます。

エラー

Unrecognized VM option 'MaxMetaspaceSize=256m'

jmeterファイルの159行目の以下の箇所をコメントアウト

## : "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

Exception in thread main java.lang.UnsupportedClassVersionError: org/apache/jmeter/NewDriver : Unsupported major.minor version 52.0

$ java -version
java version "1.7.0_211"

Java 8にアップデート

Error occurred during initialization of VM

64bit環境に対して32bitでインストールしていた

$ sudo java -d64 -version
Error: This Java instance does not support a 64-bit JVM.
Please install the desired version.

https://qiita.com/sykx_16g/items/16f1712580c2e7c81080

Error occurred during initialization of VM; Could not reserve enough space for object heap

$ tar xvf jdk-8u221-linux-x64.tar.gz 
$ sudo mv jdk1.8.0_221/ /usr/local/src/
$ export PATH=/usr/local/src/jdk1.8.0_221/bin/:$PATH

更新できたことを確認

$ java -Xmx16M -version
java version "1.8.0_221"

Exception in thread main java.lang.UnsupportedClassVersionError: org/apache/jmeter/NewDriver : Unsupported major.minor version 52.0

以下の設定で解消

$ export JAVA_HOME=/usr/local/src/jdk1.8.0_221

調査過程

jmeterファイルの最終行の192行目で以下のようにJAVA_HOMEの環境変数を読み込んでおり、こちらのパスはJava 7のものだった

"$JAVA_HOME/bin/java" $ARGS $JVM_ARGS $JMETER_OPTS -jar "$PRGDIR/ApacheJMeter.jar" "$@"

参考

  • Apache JMeter™ https://jmeter.apache.org/

  • Apache JMeter の基本的な使い方に関して(その1) https://marunouchi-tech.i-studio.co.jp/4529/

  • 明日楽するために使えるようになりたい。JMeterの基本的な使い方。 https://devlog.arksystems.co.jp/2019/01/23/6596/

  • JMeterのシナリオ作成がうまくいかない!そんなときのトラブルシューティングガイド http://tech-blog.rakus.co.jp/entry/20181030/jmeter/troubleshooting

  • JMeter https://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/

Previousホスト型 IDS Tripwire とネットワーク型 IDS Snort の導入 with CentOS 6NextSquid 導入 with Amazon Linux AMI

Last updated 1 month ago