負荷テストクライアント
負荷テストツールには、JMeter を使う。
メーカーにいた8年くらい前からずっとスタンダードなツール。
pluginは入れておいたほうが良い。
http://jmeter-plugins.org/downloads/all/
リスナーとしては、以下を表示しておくと良い。
- jp@gc – Response Times Over Time
- jp@gc – Transactions per Second
- jp@gc – Active Threads Over Time
- jp@gc – Composite Graph (上記の選択表示)
スループットを制御するには jp@gc - Throughput Shaping Timer を使う。
RPS(Requests Per Second) とその継続秒数を指定して、スケジューリングすることが可能だ。
JMeterでハマった点は、PUT Method で Body パラメータをPOSTと同様には送信出来ないことだ。
Body Dataに直接 {key}={value}&... と記述すると送信出来た。変な仕様。
監視ツール
VisualVM と JConsole を使う。VisualVM
http://visualvm.java.net/ja/gettingstarted.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20090902/336270/?ST=develop&P=1
JConsole
JDKに標準で付属する監視ツール。
負荷テスト中監視したいのは、リクエストに成功しているかどうか、とメモリ領域に異常が無いかどうかである。
リクエストに成功しているかは、以下で確認出来る。
- JMeter:レスポンスを確認
- VisualVM :ヒープサイズに異常が無いか
- VisualVM:待機スレッドが不必要に増加していないか
メモリ領域は、OutOfMemoryの原因が潜んでいないかどうかを確認する。
- PermSize
- CodeCache
CodeCacheについて
Hotspot VM は 動的コンパイラ(Just in Time) の1つであり、よく使われるプログラム(Hotspot)の
メモリ上のバイトコードをメモリ上のネイティブコードに変換するキャッシュの仕組みである。
よく使われる部分について、ネイティブと同程度の性能を得られる。
PermSizeが不足したOutOfMemoryError
perm領域を食いつぶしていた話
運用しておいた方が良いパラメータ
以下のブログにまとめられている。
こちらも参考になる。
0 件のコメント:
コメントを投稿