DNSのキャッシュ無効化(CDN利用時等に便利)
負荷試験をするときに、通信経路にCDNが入る場合があります。JMeterではデフォルトでDNSキャッシュを有効にしてしまうため、DNSキャッシュを無効にする必要があります。
※CDNは負荷状況に応じて返却するIPアドレスを変更し、負荷を均一に保というとします。そのため、JMeter側でDNS情報をキャッシュしてしまうと1か所のエッジに負荷が集中し、正常な負荷試験ができない場合があります。
JVM側で設定する場合
$JAVA_HOME/lib/security/java.security に下記を記述します。
1 |
networkaddress.cache.ttl=0 |
項目 | 値 | 意味 |
---|---|---|
networkaddress.cache.ttl | -1 | 無制限でキャッシュ(デフォルト) |
networkaddress.cache.ttl | 0 | キャッシュ無効 |
Jmeterの起動スクリプトで設定する場合
マスタのみの場合
起動コマンドに"-Dsun.net.inetaddr.ttl=0"を追加します。
1 |
${JMETER_HOME}/bin/jmeter -Dsun.net.inetaddr.ttl=0 -n -t ${実行ファイル} |
マスタスレーブ構成の場合
スレーブの起動スクリプト(${JMETER_HOME}/bin/jmeter-server)に"-Dsun.net.inetaddr.ttl=0"を追加します。
1 |
${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dsun.net.inetaddr.ttl=0 -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log “$@” |