Ответ
В выводе top каждый процесс отображается с набором ключевых метрик, которые я использую для диагностики проблем с производительностью и ресурсами:
Основные колонки:
- PID – уникальный идентификатор процесса. Используется для отправки сигналов (
kill -9 PID) или более детального анализа (strace -p PID). - USER – владелец процесса. Помогает идентифицировать, от чьего имени запущена проблемная служба.
- PR (Priority) & NI (Nice) – приоритет планировщика.
NI(от -20 до 19) влияет наPR. ОтрицательноеNIдает процессу больше CPU. Я настраиваюniceдля фоновых задач, чтобы не мешать критичным процессам. - VIRT, RES, SHR – метрики использования памяти.
VIRT– вся виртуальная память (код, данные, shared libs, swap). Может быть сильно завышен.RES– резидентная память в RAM. Это реальное физическое потребление, на которое я смотрю в первую очередь при подозрении на утечку.SHR– разделяемая память (например, общие библиотеки glibc). Экономит RAM, если несколько процессов используют одну библиотеку.
- %CPU – процент использования процессорного времени за последний цикл обновления. Значение >100% указывает на использование нескольких ядер.
- %MEM – процент от общей физической RAM, используемой процессом (
RES / total RAM). - TIME+ – совокупное время CPU, затраченное процессом с момента запуска. Помогает найти "прожорливые" долгоиграющие процессы.
Пример анализа: Если я вижу процесс с высоким %CPU и растущим RES, это может указывать на неоптимальный алгоритм или утечку памяти. Процесс с высоким VIRT, но низким RES обычно не является проблемой для RAM.