Полевой справочник по каждой цифре в htop — от load average до зомби
Петерис Рокс убивает процессы один за другим, пока его Linux-машина не остаётся почти голой, — всё ради ответа на вопрос, который top никогда не проговаривает: какой из них вообще можно убить?
Разбор 2019 года расшифровывает каждое поле в htop и top: load average — это сглаженное среднее числа готовых к работе плюс непрерываемых задач, а не процент CPU, а колонка состояния S идёт от R до неубиваемого D и безобидного зомби Z.
Самая острая мысль: VIRT — это иллюзия. RES — настоящая резидентная память; виртуальный размер считает mmap-области, которых процесс никогда не касается.
Комментарии превратили это в тред про инструменты: btop, nmon, настройки дерева процессов.
load average врёт, а VIRT врёт ещё сильнее

Разбор 2019 года от Петериса Рокса берёт каждое поле в htop и top и объясняет, что оно на самом деле измеряет. Load average — не процент CPU: это экспоненциально сглаженное скользящее среднее за 1, 5 и 15 минут по процессам, которые работают или застряли в непрерываемом сне. На одном ядре 1,0 означает полную загрузку. Счётчик задач существует потому, что ядро Linux называет процессы «задачами», а Shift+H прячет и показывает потоки.

На памяти справочник ставит своё знамя. VIRT считает каждую mmap-область, которую процесс резервирует, но может ни разу не тронуть, поэтому регулярно завышает потребление. RES — настоящая резидентная память в RAM, а SHR — copy-on-write часть, которую можно делить. Колонка S сообщает состояние: R значит работу, S прерываемый сон, D непрерываемое ожидание ввода-вывода, которое обычно не убить, Z уже завершившийся зомби, держащий лишь PID. Niceness идёт от −20 до 19, каждый шаг стоит примерно десять процентов времени CPU, а PRI равен просто 20 плюс NI.
Стержень статьи — один эксперимент: можно ли это убить? Автор шлёт процессам SIGTERM (15), затем SIGKILL (9), который не перехватит ни одна программа, и смотрит, как целый рабочий стол ужимается до голой системы. Зомби сопротивляется обоим, потому что нельзя убить то, что уже мертво.

Последняя подстава косметическая: через PuTTY псевдографика и цвета требуют правильных настроек терминала, иначе индикаторы отрисовываются как мусор.

Комментарии превратили разбор в перестрелку инструментов
Урок про память зашёл сильнее всего — читатель наблюдал ту же ловушку в браузере:
«Резидентный размер — самая надёжная метрика. Всё прочее может ошибочно раздуваться … безобидными memory-mapped файлами … У Chrome была эта проблема какое-то время.» — комментатор, вспоминающий, как Chrome чинил mmap
Активный пользователь предложил два дефолта, которые хотел бы видеть в htop:
«Я отключаю пользовательские потоки … включаю вид дерева процессов … и то, и другое должно быть поведением htop по умолчанию.» — ежедневный пользователь htop
Затем тред уплыл к преемникам.
«Я относительно недавно перешёл на btop … похоже, он показывает ещё и потребляемые ватты» — senior-инженер по машинному обучению
Это откликнулось на прямо высказанное пожелание:
«Немного глупо, что видишь load average, но не количество ватт, которые потребляет твоя система.» — один читатель
Шесть лет спустя статью всё ещё добавляют в закладки, потому что поля, которые она расшифровывает, не изменились. Изменилось то, что btop, nmon и компания теперь рисуют ватты, GPU и диски, которые htop так и не научился показывать.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Command & Conquer Generals нативно перенесли на iPhone, iPad и Apple Silicon
Стратегия в реальном времени 2003 года теперь идёт на iPhone без изменений: её вызовы DirectX 8 проходят через четыре графических слоя, прежде чем добраться до Apple Metal. Без эмуляции, без стриминга.