Администратор, который не знает, что происходит внутри сервера прямо сейчас, работает вслепую. Нагрузка на CPU неожиданно скачет до 100%, диск заполняется за ночь, память утекает из-за одного плохо написанного скрипта — всё это типичные ситуации, с которыми сталкивается любой, кто обслуживает Linux-серверы. К счастью, в экосистеме Debian есть набор проверенных консольных инструментов, которые позволяют держать руку на пульсе системы в режиме реального времени. В этой статье мы разберём установку и практическое применение пяти ключевых утилит: htop, btop, iotop, sysstat и ncdu — и покажем, как выстроить из них рабочий процесс диагностики.
Прежде чем переходить к разбору каждой утилиты, установим их все разом. Одна команда — и всё готово к работе:
apt update && apt install -y htop btop iotop sysstat ncdu
Обновление индекса пакетов обязательно: без него apt может предложить устаревшие версии или вовсе не найти пакет. Флаг -y автоматически подтверждает установку, что удобно при работе в скриптах или через SSH без интерактивного терминала.
htop — это расширенная замена стандартной утилите top. Главное отличие — цветной интерфейс, поддержка мыши и возможность управлять процессами без запоминания горячих клавиш. Запустить его просто:
htop
На экране вы увидите горизонтальные полосы загрузки для каждого ядра CPU, графики памяти и подкачки, а ниже — список всех процессов с их PID, пользователем, потреблением CPU и RAM.
F3 или / и начните вводить имя процесса, чтобы быстро найти нужный.F9, затем выберите сигнал (обычно SIGTERM или SIGKILL).Сортировка по столбцам выполняется кликом мыши или клавишей F6. Для поиска ресурсоёмких процессов удобно сортировать по CPU% или MEM% в убывающем порядке.
Если htop — это рабочая лошадка, то btop — его функциональный преемник, который объединяет на одном экране всё: CPU, память, сеть и диски одновременно.
btop
Интерфейс разделён на панели. По умолчанию вы видите:
| Клавиша | Действие |
|---|---|
q | Выход |
f | Поиск процесса |
e | Показать дерево процессов |
t | Переключить вид процессов |
m | Сортировка по памяти |
p | Сортировка по CPU |
btop особенно удобен при первичной диагностике: за несколько секунд вы получаете общую картину состояния системы без необходимости переключаться между несколькими утилитами.
Когда сервер замедляется и htop показывает высокий iowait в колонке нагрузки CPU, пора запускать iotop. Эта утилита показывает, какие именно процессы читают с диска или пишут на него прямо сейчас:
iotop
Для запуска требуются права root — если вы работаете от обычного пользователя, добавьте sudo:
sudo iotop
По умолчанию iotop показывает все процессы, в том числе те, у которых нулевая I/O-активность. Чтобы видеть только активные процессы, используйте флаг -o:
sudo iotop -o
-b -n 3 — утилита выведет три снимка в пакетном режиме и завершится. Удобно для логирования через cron.Обращайте внимание на колонки DISK READ и DISK WRITE. Если один процесс стабильно пишет 50+ МБ/с — это повод изучить его подробнее. Частые виновники: базы данных без правильной настройки буферов, антивирусный сканер, rsync-бэкапы в неподходящее время или зависший скрипт, генерирующий гигабайты логов.
Все перечисленные выше инструменты показывают только то, что происходит прямо сейчас. Но что если сервер упал в 3 ночи, а вы разбираетесь с последствиями утром? Здесь незаменим sysstat — пакет, который собирает статистику системы каждые 10 минут и хранит её на диске.
После установки активируйте сбор данных:
systemctl enable sysstat
systemctl start sysstat
Убедитесь, что автосбор включён в конфигурации:
nano /etc/default/sysstat
Найдите строку и убедитесь, что она выглядит так:
ENABLED="true"
Для анализа нагрузки на CPU за прошедшие часы используется команда sar:
sar -u 1 5
Это выведет загрузку CPU с интервалом в 1 секунду, 5 раз подряд. Для просмотра данных за вчера:
sar -u -f /var/log/sysstat/sa$(date -d yesterday +%d)
sar -r 1 5
sar -d 1 5
Ключ -d показывает активность каждого блочного устройства — количество операций чтения и записи, среднее время ожидания и утилизацию. Высокое значение %util, близкое к 100%, говорит о том, что диск является узким местом системы.
Иногда нужна просто быстрая справка без запуска полноценного интерактивного инструмента. Две команды, которые должны быть в мышечной памяти каждого администратора:
free -h
Флаг -h выводит значения в человекочитаемом формате (ГБ, МБ). Смотрите на строку available — это реально доступная память с учётом кешей, которые ядро готово освободить. Строка free часто вводит в заблуждение: Linux агрессивно кеширует данные в RAM, и небольшое значение free — это норма, а не проблема.
df -h
Выводит все примонтированные файловые системы с информацией об использовании. Обратите внимание на колонку Use% — при значении выше 85% стоит задуматься об очистке или расширении тома. Критичная отметка — 95%: при заполнении диска многие сервисы начинают отказывать.
Когда df -h сигнализирует о нехватке места, следующий вопрос — что именно занимает диск? Стандартная команда du даёт ответ, но разбираться в её выводе неудобно. ncdu (NCurses Disk Usage) делает анализ диска интерактивным:
ncdu /
Утилита сканирует указанный каталог и строит интерактивное дерево с размерами. Самые большие папки — вверху списка. Навигация стрелками, Enter для входа в папку, d для удаления файла или директории прямо из интерфейса.
ncdu периодически на каталогах /var/log, /var/lib/docker и домашних директориях пользователей — именно там чаще всего незаметно накапливаются гигабайты лишних данных./var/log — логи без ротации или с неправильной настройкой logrotate/var/lib/docker — образы, слои и тома Docker, которые давно не используются/tmp — временные файлы, не удалённые при сбое процессовСведём всё воедино. Вот последовательность действий, когда сервер ведёт себя подозрительно:
btop — получите общую картину: CPU, память, сеть, диски одним взглядом.htop, отсортируйте по CPU%, найдите процесс-виновник.sudo iotop -o и определите, какой процесс нагружает диск.free -h. Если swap активно используется, ищите утечку памяти через htop.df -h. Если места мало, запустите ncdu /var для быстрой навигации.sar -u или sar -r для понимания, когда началась проблема.Установить инструменты — это только первый шаг. Реальную ценность они дают тогда, когда становятся частью повседневной практики. Включите sysstat на всех серверах сразу после их настройки — исторические данные копятся незаметно, а в момент инцидента дают неоценимую информацию. Раз в неделю запускайте ncdu на ключевых разделах, чтобы отслеживать рост занятого места. А btop держите под рукой для быстрой проверки — его достаточно открыть на 30 секунд, чтобы убедиться, что всё в порядке.
Грамотный мониторинг — это не реактивная работа по тушению пожаров, а проактивное управление инфраструктурой. Сервер, за которым наблюдают, падает гораздо реже. А если всё-таки что-то идёт не так — вы узнаете об этом первым, с точными данными на руках, а не по жалобам пользователей. Начните с одной команды установки, включите sysstat прямо сейчас, и через неделю у вас уже будет неделя исторических данных — бесценных при любом расследовании.
Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах. Собственный дата-центр, команда из 8 серверов Dell Xeon Platinum 8280 на базе МТС.