JVM パフォーマンスのトライアングル
元 Twitter 社エンジニア Attila Szegedi 氏の発表による。
JVM(Java Virtual Machine) のトレードオフ(同時には成立しない二律背反の関係)を考える。
この図は分かりやすいが、正確さに欠ける。
そこで、このような三角形(トライアングル)が提唱された。
これは、次のように言い換えることができる。
・省メモリ
→ 物理メモリ・ヒープサイズを増やせば、パフォーマンスは向上する。
→ ただし、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 件のコメント:
コメントを投稿