チューニング時間:
- ヒープ メモリ (古い世代) は、設定された最大メモリ値まで増加し続けます。
- Full GC の回数は頻繁に発生します。
- GC の一時停止時間が長すぎます (1 秒以上)。
- アプリケーションには、OutOfMemory などのメモリ例外があります。
- アプリケーションはローカル キャッシュを使用し、大量のメモリ スペースを占有します。
- システムのスループットと応答性が低いか、低下しています。
チューニングの原則:
- ほとんどの Java アプリケーションは、サーバー上で JVM の最適化を必要としません。
- GC の問題を引き起こす Java アプリケーションのほとんどは、パラメーター設定の誤りではなく、コードの問題が原因です。
- アプリケーションがオンラインになる前に、マシンの JVM パラメータを最適 (最適) に設定することを検討してください。
- 作成されるオブジェクトの数を減らします。
- グローバル変数と大きなオブジェクトの使用を減らします。
- JVM の最適化は最後の手段です。
- 実際の使用では、JVM パラメータを最適化するよりも、コードを最適化するために GC 状況を分析する方が適切です。
チューニング対象:
-
GC 低休止。
-
GC 低頻度;
-
メモリ使用量が少ない。
-
高スループット;
チューニング手順:
-
GC ログとダンプ ファイルを分析して、最適化が必要かどうかを判断し、ボトルネックを特定します。
-
jvm チューニングの量的な目標を決定します。
-
jvm チューニング パラメーターを決定します (過去の jvm パラメーターに従って調整されます)。
-
サーバーをチューニングし、チューニング前後の違いを比較して観察します。
-
適切な jvm パラメータ設定を見つけることを知っている、継続的な分析と調整。
-
最適なパラメーターを見つけて、すべてのサーバーに適用し、フォローアップします。