11.3.3. システム予約メモリー使用率が 80% を超えるノード
システム予約メモリー使用率が 80% を超えるノード のクエリーでは、各ノードで使用されているシステム予約メモリーの割合が計算されます。この計算では、Resident Set Size (RSS) の合計を、割り当て可能なメモリーから差し引かれたノードの合計メモリー容量で割ります。RSS は、メインメモリー (RAM) に保持される、プロセスが占有するシステムメモリーの部分です。結果の値がしきい値である 80% 以上の場合、ノードにフラグが追加されます。
デフォルトクエリーの例
sum by (node) (container_memory_rss{id="/system.slice"}) / sum by (node) (kube_node_status_capacity{resource="memory"} - kube_node_status_allocatable{resource="memory"}) * 100 >= 80
システム予約メモリーは、システムデーモンおよび Kubernetes システムデーモンの実行に利用されるため、Kubernetes ノードにとって非常に重要です。システム予約メモリー使用率が 80% を超える場合は、システムと Kubernetes デーモンがメモリーを過剰に消費していることを示し、ノードが不安定になって実行中の Pod のパフォーマンスが影響を受ける可能性があることを示唆しています。過剰なメモリー消費は、メモリーを解放するために重要なシステムプロセスを終了させる Out-of-Memory (OOM) キラーを引き起こす可能性があります。
このメトリクスによりノードにフラグが追加された場合は、メモリーを過剰に消費しているシステムまたは Kubernetes プロセスを特定し、状況を緩和するための適切なアクションを実行します。これらのアクションには、重要ではないプロセスのスケールバック、メモリー使用量を削減するためのプログラム設定の最適化、メモリー容量がより大きいハードウェアへのノードシステムのアップグレードなどが含まれる場合があります。また、Outliers、Average durations、Number of operations カテゴリーのメトリクスを確認して、ノードのパフォーマンスに関する詳細情報を得ることもできます。