Ответ
В Linux есть несколько основных инструментов для анализа работающих процессов, что критически важно для диагностики проблем с производительностью или утечками ресурсов.
1. ps (Process Status) — для моментального снимка.
- Показать все процессы системы:
ps auxaux— ключевая комбинация флагов для вывода максимально полной информации о всех процессах от всех пользователей. - Показать процессы в формате дерева (с родительско-дочерними связями):
ps auxf - Отфильтровать процессы по имени (например, nginx):
ps aux | grep nginx
2. top / htop — для интерактивного мониторинга в реальном времени.
top— стандартный интерактивный монитор. Показывает динамику загрузки CPU, памяти, список процессов, который можно сортировать.htop— улучшенная, более удобная версияtop(часто требует установки). Поддерживает цветной вывод, вертикальную и горизонтальную прокрутку, управление мышью.
3. pstree — для визуализации иерархии процессов.
pstree -p
Показывает дерево процессов с указанием PID. Очень наглядно демонстрирует, какие процессы были порождены каким родительским процессом (например, воркеры веб-сервера).
DevOps-контекст:
- При расследовании инцидентов высокой загрузки CPU или памяти первым делом запускаю
topилиhtop, чтобы идентифицировать проблемный процесс. - Команда
ps aux --sort=-%cpu | head -10быстро покажет топ-10 процессов по потреблению CPU, что полезно для скриптов автоматического сбора диагностики. - Понимание дерева процессов (
pstree) помогает при отладке проблем с демонами, которые не могут породить дочерние процессы, или при "зомби"-процессах.