メモリの調整が必要なこの webapp があります。すでにアプリケーション自体のプロファイリングを行って調整を行っていますが、最もビジーなインスタンスでは JVM 自体が過度に肥大化しているように見えます。(ボリュームの低いインスタンスにはこの問題はありません。) 詳細:
- プラットホーム:
- RHEL4 64 ビット (
Linux 2.6.9-78.0.5.ELsmp #1 SMP x86_64
) - Sun Java 6 (
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b23, mixed mode)
) -d64
でTomcat 6startup.sh
- RHEL4 64 ビット (
- 現在、私の webapp には、本番環境で 64 ビットを実行する利点を必要とするコードが含まれています。
- しばらくすると (1 週間)、JVM の常駐メモリ サイズ (上に表示) が-Xmx 設定のサイズの 3 倍になることがわかりました。
- 非ヒープ メモリ サイズなどはすべて比較的些細なものであり、ヒープ サイズのわずか 1 桁のパーセンテージです。
- 64 ビットのビット アドレス空間を必要とするコード セクションは 1 つだけです。
64 ビット JVM の必要性をリファクタリングして-d64
スイッチを削除できた場合、JVM の常駐メモリ フットプリントは小さくなりますか? 言い換えると...
-d64
このスイッチは Sun JVM 常駐メモリの使用にどのような影響を与えますか?