インストール
JDK17
Downloads for Amazon Corretto 17 - Amazon Corretto 17
JMeter
Apache JMeter - Download Apache JMeter
※ 5.6.3を使用する場合のノウハウを記載
JMeter起動パラメータ修正
JMeter展開ディレクトリのbinディレクトリにある、jmter.batの以下2か所を修正する
日本語化
修正前: set JMETER_LANGUAGE=-Duser.language="en" -Duser.region="EN"
修正後: set JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JP"
ヒープサイズ変更
修正前: set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
修正後: set HEAP=-Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m
JMeterプロパティ修正
HTTPリクエストレスポンスのデフォルト文字コードをUTF-8とする
JMeter展開ディレクトリのbinディレクトリにある、jmeter.propertiesの以下のコメントアウトをはずす。
# The encoding to be used if none is provided (default UTF-8 since JMeter 5.6.1)
sampleresult.default.encoding=UTF-8
結果をツリーで表示のデフォルトのレンダラーをJSONにする
※ 1,210行以降の以下のサンプルの個所あたりを修正する。
修正前:view.results.tree.renderers_order=.RenderAsText,.RenderAsRegexp,.RenderAsBoundaryExtractor,.RenderAsCssJQuery,org.apache.jmeter.extractor.json.render.RenderAsJsonRenderer,.RenderAsXPath2,org.apache.jmeter.extractor.json.render.RenderAsJmesPathRenderer,.RenderAsXPath,.RenderAsHTML,.RenderAsHTMLFormatted,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsJSON,.RenderAsXML
修正後:view.results.tree.renderers_order=.RenderAsJSON,.RenderAsText,.RenderAsRegexp,.RenderAsBoundaryExtractor,.RenderAsCssJQuery,org.apache.jmeter.extractor.json.render.RenderAsJsonRenderer,.RenderAsXPath2,org.apache.jmeter.extractor.json.render.RenderAsJmesPathRenderer,.RenderAsXPath,.RenderAsHTML,.RenderAsHTMLFormatted,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsXML
# Order of Renderers in View Results Tree
# Note full class names should be used for non JMeter core renderers
# For JMeter core renderers, class names start with '.' and are automatically
# prefixed with org.apache.jmeter.visualizers
view.results.tree.renderers_order=.RenderAsJSON,.RenderAsText,.RenderAsRegexp,.RenderAsBoundaryExtractor,.RenderAsCssJQuery,org.apache.jmeter.extractor.json.render.RenderAsJsonRenderer,.RenderAsXPath2,org.apache.jmeter.extractor.json.render.RenderAsJmesPathRenderer,.RenderAsXPath,.RenderAsHTML,.RenderAsHTMLFormatted,.RenderAsHTMLWithEmbedded,.RenderAsDocument,.RenderAsXML
TCP/IPチューニング
クローズされたソケットの再利用を早くする
参考
Settings that can be Modified to Improve Network Performance - BizTalk Server | Microsoft Learn
PowerShellの管理者モードで、以下のコマンドを実行
PS > Set-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name TcpTimedWaitDelay -Type DWord -Value 30
PS > Get-ItemProperty HKLM:SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name TcpTimedWaitDelay
TcpTimedWaitDelay : 30
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip
PSChildName : Parameters
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
実行時の注意
-
並列度を高くして実行すると
ハイポートのソースポート番号が不足し、シナリオ実行できない。 -
定常的にハイポートをJMeter向けに開放すると、AWS CLIが実行できなくなる。
-
性能テストを行う時は開放し、終了したら閉塞する必要がある。
PowerShellの管理者モードで、以下のコマンドで設定を行える。
変更シーン | コマンド |
---|---|
負荷テスト開始時(ポート開放) | netsh int ipv4 set dynamicport tcp start=1025 num=64511 |
現在のポート範囲を確認 | netsh int ipv4 show dynamicport tcp |
負荷テスト終了後(ポート閉塞) | netsh int ipv4 set dynamicport tcp start=49152 num=16384 |
まとめ
本稿が、JMeter関連のノウハウを知りたい方の参考になれば嬉しいです。
ITエンジニア向け、AWS資格取得を目指す方向けに個人ブログで記事も投稿していますので、
合わせて読んでもらえると嬉しいです。
ことなの学校(個人ブログ)
更によりレベル感の高そうなAWS関連の発信はZennの方で行います。
こちらももしよければフォロー、ご確認いただけると嬉しいです。
Zenn個人アカウント
Twitterでも役立つ情報を発信しますのでフォローしてもらえると嬉しいです
→ @tomo_ITBizBlog