Back to guidesGuide

Understand Kubernetes memory metrics without firing false OOM alerts

Separate page cache, working set, RSS, limits, and OOMKilled events so your Prometheus dashboards and alerts help instead of panic.

A practical guide to diagnosing Kubernetes container memory with Prometheus and Grafana without confusing usage, working set, RSS, or reclaimable page cache.

Created: April 26, 2026

Published: April 26, 2026

Estimated time40 min
LevelIntermediate
Before you startPrometheus scraping kubelet/cAdvisor metrics
PlatformsLinux / Docker
WhatsAppXLinkedIn

Linux

A kubectl, Prometheus, and promtool flow to separate real memory pressure from reclaimable page cache.

kubectl with read access to the clusterPrometheus scraping cAdvisor/kubelet metricsOptional promtool for rule validation
List recent OOMKilled events
kubectl get events -A --field-selector reason=OOMKilling --sort-by=.lastTimestamp
Check memory limits per pod
kubectl get pods -A -o custom-columns='NS:.metadata.namespace,POD:.metadata.name,CONTAINER:.spec.containers[*].name,LIMITS:.spec.containers[*].resources.limits.memory'
Validate rules before rollout
promtool check rules k8s-memory-alerts.yml

Content locked

This guide requires both steps before full content is available.

  • Click “Like” on this guide.
  • Share on WhatsApp, X, LinkedIn, or copy the link.

Access is automatically unlocked as soon as both steps are completed.