Jmeterを使用した負荷試験でのちょっとした注意点

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

お久しぶりです、はじめましての方もお久しぶりの方もお元気ですか?
おっさんは今日も仕事の後の麦酒がおいしいです。
秋から家族になった、うちの猫のかわいさを世界中に伝えるために2000文字位の記事を投稿したい心をぐっとこらえて
Jmeterを使った負荷試験でのちょっとした注意点をご紹介したいと思います。

こんなん知ってるよ~って方は「イイね」だけクリックして頂いて他の記事をご覧ください。

気になる方は続きを読むをクリックすると

今回は下記2つの注意点をご紹介いたします。
・WindowsでJmeter環境を構築する場合の注意点
・AWS ELBに対しての負荷試験の際にやっておかなければいけない事

  • WindowsでJmeter環境を作成する場合の注意点
    JmeterはJAVA上で動作しますがWindows環境の場合、64bitOS上でもOracle社のサイトから自動ダウンロードの場合
    32bit版のJAVAがインストールされてしまいます。(お前の確認がおろそかとか言わないで)
    32bit版JAVAでもJmeterはそのまま動作してしまうのですが!!

たくさんの負荷試験を行いたい時にHEAP値を調整して4GB以上のメモリを割り当てると
OOMでJmeterが起動しないって事になっちゃったりしちゃいます。
ですのできちんとJAVAをインストールするときはこちらから64bit版をインストールしてあげましょう
もちろん64bit版をインストールした後はHEAP値を適切に調整することが重要です。
私もこれでちょびっとハマりました。

 

  • AWS ELBに対しての負荷試験の際にやっておかなければいけない事

JVM (java)のデフォルトとしてDNSのキャッシュを無制限で保持する設定となっています。
AWSのELBはElastic Load Balancingの正式名称の通り伸縮自在にスケールします。
スケールに伴いIPも変わってしまいます。
DNS名でアクセスするので通常のブラウジング等では問題が無いのですけど
上記のDNSキャッシュが無制限にキャッシュされますと負荷試験の途中でELBがスケーリングしIPが変更され
負荷が掛けられないという悲しい事になってしまいますので
下記のようにJVM側でDNSでキャッシュを切ってしまうかJmeter起動時に引数でキャッシュしないようにしましょう

・JVM側でのDNSキャッシュ無効化での対応
$JAVA_HOME/lib/security/java.security に下記を記述
#networkaddress.cache.ttl=-1 ⇐-1は無制限でキャッシュされます。
上記がデフォルトなので下記のように変更
networkaddress.cache.ttl=0 ⇐0にするとキャッシュを無効化します。

・Jmeterの起動スクリプトでの対応
マスタースレーブ構成ではスレーブ側のJmeter-Serverの起動スクリプトに"-Dsun.net.inetaddr.ttl=0"を追加するだけ
ちなみに記述としては下記のようになります。

${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dsun.net.inetaddr.ttl=0 -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"

ということで今回はここまで!最後にうちの猫!

IMAG0113

投稿者プロフィール

tsubo
2014年6月からスカイアーチに入社しました新入りのおっさんです。
雑食な性格ですのでその時の気分で記事を投稿していきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

2014年6月からスカイアーチに入社しました新入りのおっさんです。 雑食な性格ですのでその時の気分で記事を投稿していきたいと思います。