Monitoringで表示されているメモリ使用率が上昇し続けます。
knowledge-article-header-disclaimer-how-to
knowledge-article-header-disclaimer
legacy-article
learn-legacy-article-disclaimer-text
問題
- Monitoringで表示されているメモリ使用率が上昇し続けます。
- コントロールパネル>サーバ管理から確認できるメモリ使用率と一致しません。
環境
解決
- Monitoringのメモリ使用率が上がり続ける動作は正常です。
表示されているグラフは、GKE(Google Kubernetes Engine)上から見える各ポッド上におけるコンテンのメモリ使用率がそのまま表示されます。
- サービス起動時は、設定された最小メモリに近い値で起動します。
アプリケーションサーバーに負荷が全くかからない場合は、メモリの使用率は増加しません。
リクエストが増加するつれてアプリケーションサーバーへ負荷がかかり、メモリの消費量も増加します。
- xmx、xmsを同値(最大値)に設定することで、最初から最大値が確保されるように動作します。
高負荷状態において、Javaアプリケーションがxmx設定(最大ヒープサイズ)によって割り当てられたメモリの最大量まで使用することは予想される動作です。
- xmxパラメータを設定することで、JVMが使用できる最大ヒープ・サイズが定義されます。
高負荷のアプリケーションは、効率的に機能するためにかなりのメモリを必要とすることがあり、この上限までメモリを使用することが期待されます。
この使用量はJVMによって管理され、JVM はオブジェクトにメモリを割り当て、オブジェクトが不要になるとガベージコレクションによってメモリを回収します。
- 割り当てられた最大メモリを使用すると、メモリ上限を低く設定しすぎた場合に発生する頻繁なガベージ・コレクションを防ぐことができます。
- 頻繁なガベージコレクションはパフォーマンスのオーバーヘッドにつながり、アプリケーションの速度を低下させます。
ヒープの全容量を利用することで、アプリケーションはピーク負荷下でも安定したパフォーマンスを維持できます。
did-this-article-resolve-your-issue