6.19.2012

Performance Triangle for JVM

JVM パフォーマンスのトライアングル

元 Twitter 社エンジニア Attila Szegedi 氏の発表による。
JVM(Java Virtual Machine) のトレードオフ(同時には成立しない二律背反の関係)を考える。

image

この図は分かりやすいが、正確さに欠ける。
そこで、このような三角形(トライアングル)が提唱された。

image

これは、次のように言い換えることができる。

・パフォーマンス トライアングル
image

・省メモリ
  → 物理メモリ・ヒープサイズを増やせば、パフォーマンスは向上する。
  → ただし、32bit のデータモデルの場合は 4GB の壁を超えてはいけない。
    プロセスが 32bit のデータモデルか調べる方法:
    http://mogproject.blogspot.jp/2011/09/how-to-find-if-process-is-64-bit-or-32.html
・応答速度
  → アプリケーションの最長停止時間
  → ガベージコレクタ―の動作が最も影響する

このトライアングルの理論において、
C(Compactness) × T(Throughput) × R(Responsiveness) = a (定数) である。

定数 a に対して、C, T, R のどこに比重を置くか変えるのがチューニング。
定数 a を増加させるのが 最適化である。

参考:
Everything I Ever Learned About JVM Performance Tuning at Twitter
http://www.beyondlinux.com/files/pub/qconhangzhou2011/Everything%20I%20ever%20learned%20about%20JVM%20performance%20tuning%20@twitter%28Attila%20Szegedi%29.pdf

0 件のコメント:

コメントを投稿