-
Notifications
You must be signed in to change notification settings - Fork 0
MS_JMeterInstallation
- 戻る(Apache JMeter)
- Jmeterのインストール
- Jmeter用語 / JmeterによるWebアプリの負荷テスト
JMeter のインストールについて。
-
JMeter がサポートしている JRE をインストールする。
-
2018 年 9 月より Oracle Java は有償となったため、
同等の機能を持つ Adopt Open JDK をインストール- Java8 の LTS 版で、hotspot を選択する。
(Java有償化について調べてみた。(DNET_JavaLicensing.md))
- Java8 の LTS 版で、hotspot を選択する。
移行メモ(誤字): 元ページの「Oracke Java」は「Oracle Java」の誤記。
補足(最新化:JDK の入手先): AdoptOpenJDK は
Eclipse Temurin(Adoptium)に改称されている。
現在の主な OpenJDK ディストリビューションは以下。
ディストリビューション 提供元 Eclipse Temurin Eclipse Adoptium(旧 AdoptOpenJDK) Microsoft Build of OpenJDK Microsoft Amazon Corretto AWS Azul Zulu Azul Systems また、JMeter の要件も上がっており、
JMeter 5.6 は Java 8 以上、JMeter 6.0 は Java 17 以上を要求する。
「Java 8 の LTS を選ぶ」という記述は当時のものなので、
導入する JMeter のバージョンに合わせて選ぶこと。
JMeter パッケージのダウンロード&適当なディレクトリに解凍
- Apache JMeter - Download Apache JMeter
https://jmeter.apache.org/download_jmeter.cgi
※ ZIP64 をサポートしない Lhaplus などのツールで解凍した場合、
「正常に解凍できません。CRC が一致しないか、出力先ファイルが使用中です。」
というエラーが起きる。
補足: 現在の Windows なら、エクスプローラの標準機能や
7-Zip / PowerShell のExpand-Archiveで問題なく解凍できる。
上記は ZIP64(4GB 超・ファイル数 65535 超に対応した拡張)に
未対応の古いツール固有の問題である。
Java のランタイム (JRE) のインストール
- Java SE - Downloads | Oracle Technology Network | Oracle
https://www.oracle.com/java/technologies/downloads/
※ JMeter がサポートしている JRE をインストールする。
JMeter パッケージのダウンロード&適当なディレクトリに解凍
- Apache JMeter - Download Apache JMeter
https://jmeter.apache.org/download_jmeter.cgi
システム環境変数
-
JAVA_HOME:[Java のランタイム (JRE) のインストール・フォルダ] -
PATH:[Java のランタイム (JRE) のインストール・フォルダ]\bin -
参考
- PATH の設定及び環境変数 JAVA_HOME の設定 | Java 入門
https://www.javadrive.jp/start/install/index4.html
- PATH の設定及び環境変数 JAVA_HOME の設定 | Java 入門
※ 最近の JRE の PATH 設定は不要であるもよう。
下記シンボリック・リンクと言うものが設定されるらしい。
C:\ProgramData\Oracle\Java\javapath
補足:
javapathは Oracle JRE のインストーラが作るものなので、
Temurin などの OpenJDK ディストリビューションを使う場合は存在しない。
その場合はJAVA_HOMEとPATHを明示的に設定する
(インストーラのオプションで自動設定できることが多い)。
・・・
- ヒープサイズ
既定値は、512MB なので必要に応じて拡大(固定サイズ:Xms = Xmx)。
rem set HEAP=-Xms512m -Xmx512m
set HEAP=-Xms1024m -Xmx1024m
- Full GC の監視
Full GC が頻発すると、計画通りの負荷がかけられないので、
以下のコメントアウトを外し、-Xloggcを変更して、Full GC を監視する。
rem set VERBOSE_GC=-verbose:gc -Xloggc:gc_jmeter_%p.log -XX:+PrintGCDetails ...
set VERBOSE_GC=-verbose:gc -Xloggc:gc_jmeter_%%t.log -XX:+PrintGCDetails ...
補足(なぜ Xms = Xmx にするのか): ヒープの拡張はそれ自体が
Full GC を誘発するため、最小値と最大値を揃えて
実行中にヒープ サイズが変動しないようにする。
「計画通りの負荷がかけられない」という指摘のとおり、
負荷をかける側が GC で止まると、測定結果が信用できなくなる。最新化:
-Xloggcと-XX:+PrintGC*系のオプションは
Java 9 で非推奨、Java 11 以降は削除されている。
現在は統合ログ(Unified Logging)を使う。-Xlog:gc*:file=gc_jmeter.log:time,uptime:filecount=5,filesize=10M新しい JMeter の
jmeter.bat/jmeterスクリプトは
この形式に更新されている。
- ログファイル名を変更
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
- ソケット枯渇を防ぐため、TCP/IP の TTL を 0 に。
httpclient4.time_to_live=0
- 日本語対応が必要な場合、エンコーディングを UTF-8 に変更。
sampleresult.default.encoding=UTF-8
移行メモ(正誤):
httpclient4.time_to_liveは
**TCP/IP の TTL(Time To Live、ルータのホップ数)ではなく、
HttpClient のコネクション プール内で接続を保持する時間(ミリ秒)**である。
0 にすると接続を使い回さず毎回閉じるため、
結果としてTIME_WAITが増える方向に働く点に注意が要る。「ソケット枯渇を防ぐ」ことが目的であれば、
負荷クライアント側の以下の設定のほうが直接的である。
設定 内容 MaxUserPort一時ポートの上限を広げる(Windows のレジストリ) TcpTimedWaitDelayTIME_WAITの保持時間を短縮する負荷クライアントの分散 1 台で足りなければ分散実行(後述) 詳細はWindowsネットワーク編も参照。
補足(設定ファイルは直接編集しない):
jmeter.propertiesを
直接書き換えると、JMeter のバージョンアップ時に差分の管理が面倒になる。
変更したい項目はuser.propertiesに書くのが正しい運用で、
こちらがjmeter.propertiesを上書きする。
・・・
補足(負荷試験は CLI モードで実行する): GUI モードは
テスト計画の作成とデバッグ専用であり、
本番の測定に使うと GUI 自体が負荷になって結果が歪む
(JMeter 起動時にも警告が表示される)。jmeter -n -t testplan.jmx -l result.jtl -e -o report
-n: CLI(非 GUI)モード-l: 結果ファイル(JTL)-e -o: HTML レポートを生成
(Jmeterの結果のレポーティング)1 台で負荷が足りない場合は、
-Rでリモート エンジンを指定して
分散実行する。
-
JDK (Java Development Kit)
- Java 開発キット(環境)。
- Java のプログラム開発に必要。
- なお、JDK には JRE が含まれている。
-
JRE (Java Runtime Environment)
- Java 実行環境。
- Java のプログラムの実行に必要。
-
JDK のインストールと環境設定 | Java 入門
https://www.javadrive.jp/start/install/ -
Java の JDK,JRE,SE,EE などの意味と違い - TASK NOTES
http://www.task-notes.com/entry/20140810/1407599796
補足: Java 11 以降、Oracle は JRE 単体の配布を行っていない。
現在は JDK を導入するのが標準で、
実行環境だけが必要な場合はjlinkでカスタム ランタイムを作る。
- Properties Reference
https://jmeter.apache.org/usermanual/properties_reference.html - Getting Started
https://jmeter.apache.org/usermanual/get-started.html
Tags: 移行, テスト, ツール類
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。