alert: NodeMemoryLow
expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
for: 10m
severity: warning
Alert message: Low available memory ({{ $labels.instance }})
Less than 10% of RAM is available (based on MemAvailable, i.e. counting cache the kernel can give back). The system still works, but the headroom is small.
A memory leak in an application, too many workers, growth of an application cache (Redis, JVM), a heavy task being run.
free -h
ps aux --sort=-%mem | head -n 10
smem -tk 2>/dev/null | tail -n 15 # if smem is installed
docker stats --no-stream # if Docker is present
dmesg -T | grep -i -E 'oom|killed process' | tail
Find the consuming process, restart it if it leaks, reduce the number of workers or the cache size, add RAM. For a JVM, check -Xmx.
On servers where memory is deliberately used for cache (databases with a large shared_buffers and the like), but then it is better to raise the threshold in the rule to suit your profile.
The full pack of 44 tested rules + Alertmanager → Telegram: 790 ₽ (≈ $9, card payment in rubles)
Open in Telegram · Free Monitoring Lite kit · All runbook alerts