# Top memory consumers in services namespace
kubectltoppods-nservices--sort-by=memory
# Check memory usage vs limits
kubectldescribepod<pod-name>-nservices|grep-A5"Limits\|Requests\|Memory"
# Is memory climbing steadily (leak) or spiked (load)?# Check the Grafana dashboard: IDP Services → memory graph# Look for a sawtooth pattern (GC) vs a steady upward slope (leak)
kubectltoppods-nservices-lapp.kubernetes.io/instance=<service-name>--containers
3. Scale out to reduce per-pod pressure (immediate relief)¶
12345
# Scale up replicas
kubectlscaledeployment/<service-name>-nservices--replicas=<current+2>
# Verify pods are running
kubectlgetpods-nservices-lapp.kubernetes.io/instance=<service-name>
# Check if recent deploy introduced the memory growth
helmhistory<service-name>-nservices
# Compare memory usage before/after the deploy time in Grafana# Panel: "Container Memory Usage" → annotate with deploy timestamp
Common causes:
- Memory leak in application code (objects not released)
- Unbounded in-memory cache or queue
- Too many goroutines / threads accumulating
- JVM heap not tuned (Java services)