Мгновенный анализ зависаний через /proc/$PID/stack

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

linux/procwchan

👁 Когда процесс «завис», большинство сразу лезет в strace или начинает гадать по логам. Проблема в том, что strace может быть тяжёлым и вмешиваться в работу процесса. В Linux есть более быстрый способ понять, где именно залип процесс — посмотреть его стек прямо из ядра через /proc.

📝 Просмотр стека ядра зависшего процесса

Каждый процесс в Linux имеет файл /proc/PID/stack, который показывает, в каком месте ядра он сейчас находится.

sudo cat /proc/12345/stack

📌 В выводе будут функции ядра, например futex_wait, do_sys_poll, pipe_read — это сразу даёт понимание, что происходит: процесс ждёт лок, завис на IO или блокируется на сокете.

📝 Быстрая диагностика типа зависания

По стеку можно быстро определить причину зависания без тяжёлых инструментов.

sudo cat /proc/12345/stack | head -n 5

📌 Если видишь futex_wait — поток ждёт мьютекс, do_epoll_wait — залип в ожидании событий, io_schedule — проблема с диском. Это позволяет сразу сузить область поиска.

📝 Комбинация с wchan для быстрой проверки

Для ещё более быстрой диагностики можно посмотреть текущее состояние ожидания процесса через wchan.

ps -o pid,comm,wchan -p 12345

📌 wchan покажет, в какой функции ядра сейчас «спит» процесс, что удобно для массового анализа без чтения полного стека.

❗️ Это один из самых быстрых способов понять, почему процесс завис, без strace, без перезапуска и без влияния на прод. Если сервис «встал», /proc/$PID/stack часто даёт ответ за секунды.

tags: #linux #мониторинг #полезно

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот терминала с примерами команд: sudo cat /proc/12345/stack, head -n 5 и ps -o pid,comm,wchan на тёмном фоне с брендом RECURA
Скриншот с командами для просмотра стека ядра и быстрой диагностики зависаний процессов.

Читайте так же