🐧 Linux позволяет узнать, какой процесс создаёт давление на память, ещё до OOM Killer
🐧 Linux позволяет узнать, какой процесс создаёт давление на память, ещё до OOM Killer 👁 Когда сервер начинает тормозить, обычного free -h недостаточно: свободная память может выглядеть нормально, а процессы уже тратить время на reclaim и ожидание освобождения страниц. В Linux для этого есть PSI — Pressure Stall Information. 📝 Смотрим давление на память всей системы: Файл memory показывает, сколько времени задачи теряют из-за нехватки памяти. Показатель full особенно полезен: он отражает периоды, когда все работающие задачи одновременно остановлены из-за давления на память. cat /proc/pressure/memory 📝 Находим процессы, которые активно обращаются к памяти: Снимите показатели до и после нагрузки: pgmajfault растёт при крупных промахах по страницам, а VmSwap показывает объём памяти процесса, выгруженный в swap. for p in /proc/[0-9]*; do [ -r "$p/status" ] || continue awk ' /^Name:/ { name=$2 } /^VmSwap:/ { swap=$2 } /^VmRSS:/ { rss=$2 } /^VmHWM:/ { peak=$2 } END { if (rss+0 > 0 || swap+0 > 0) printf "%8s %8s %8s %s\n", rss+0, swap+0, peak+0, name } ' "$p/status" 2>/dev/null done | sort -nr 📝 Автоматически фиксируем периоды давления: PSI можно использовать для раннего обнаружения проблем и запуска сбора диагностических данных. Например, some 100000 1000000 срабатывает, когда хотя бы одна задача суммарно простаивает из-за нехватки памяти 100 мс за интервал в 1 секунду. # Требует ядро Linux с поддержкой PSI echo "some 100000 1000000" > /sys/fs/cgroup/memory.pressure ❗️ PSI помогает обнаружить давление на память до аварии, но не определяет виновника самостоятельно. Сопоставляйте его показатели с метриками процессов, журналами и нагрузкой приложения. Запись в memory.pressure cgroup требует соответствующих прав и работает для конкретной cgroup. tags: #linux #мониторинг 🧭 @recura_tech