Ответ
Ключевые ресурсы, за которыми я постоянно слежу на серверах:
-
Центральный процессор (CPU):
- Что смотреть: Утилизация (
%user,%system,%iowait), загрузка (load average). Высокийiowaitчасто указывает на проблемы с диском. - Инструменты:
top,htop,mpstat,vmstat,sar. - Пример:
mpstat -P ALL 1показывает утилизацию по каждому ядру каждую секунду.
- Что смотреть: Утилизация (
-
Оперативная память (RAM):
- Что смотреть: Общее использование, свободная память, кэш/buffer, использование swap. Опасный признак — активное использование swap при высокой загрузке RAM.
- Инструменты:
free -h,vmstat,top. - Пример:
free -hдает понятный вывод в гигабайтах.
-
Дисковое пространство и ввод-вывод (Disk I/O):
- Что смотреть: Свободное место на разделах (
/,/var,/home), скорость чтения/записи (IOPS, throughput), время отклика (latency), очередь запросов. - Инструменты:
df -h,iostat,iotop,du -sh. - Пример:
iostat -dx 2показывает статистику по устройствам каждые 2 секунды, включаяawait(среднее время ответа) и%util(процент утилизации).
- Что смотреть: Свободное место на разделах (
-
Сетевая подсистема:
- Что смотреть: Пропускную способность (throughput) на интерфейсах, количество ошибок/сбросов, количество активных соединений, задержку (latency).
- Инструменты:
iftop,nethogs,ss,netstat,ping,traceroute. - Пример:
ss -tulpnпоказывает все слушающие сокеты и связанные с ними процессы.
-
Контекст процесса:
- Что смотреть: Количество запущенных процессов/потоков, использование файловых дескрипторов.
- Инструменты:
ps,lsof,/proc/sys/fs/file-nr. - Пример:
lsof -u <username>илиlsof -p <PID>помогает найти утечки файловых дескрипторов.
Практический подход: Для production-систем я настраиваю сбор метрик по всем этим ресурсам в централизованную систему мониторинга (например, Prometheus с node_exporter) и ставлю алерты на критические пороги (например, disk_usage > 85% или load_average_5m > число_ядер * 2).
Ответ 18+ 🔞
А, ну слушай, вот тебе на самом деле жизненно важная хуйня, без которой на сервере делать нечего. Если ты это не мониторишь — ты не админ, а так, мартышлюшка с клавиатурой. Запоминай, что надо глазеть постоянно, а то будет вам хиросима и нигерсраки в один прекрасный день.
-
Проц, он же CPU, он же голова:
- На что орать: На то, чем он занят —
%user,%system, и особенно этот ёбаный%iowait. Еслиiowaitзашкаливает — это не проц тупит, это твой хард корчится в агонии, пытаясь что-то прочитать. Ну и load average, куда ж без него. - Чем смотреть:
top,htop— классика,mpstat,vmstat,sar— для глубокого копания. - Пример команды, чтоб не бздеть:
mpstat -P ALL 1— будет показывать каждую секунду, как каждое ядро пыхтит. Увидишь, если одно ядро в отключке, а остальные овердохуища грузятся.
- На что орать: На то, чем он занят —
-
Оперативка, она же RAM, она же память:
- На что орать: На общую занятость, на своп. Вот смотри: если свободной памяти — хуй с горы, но при этом swap активно используется — это пиздец, Карл. Система уже начала сбрасывать данные на медленный диск, всё ебется об лед.
- Инструменты:
free -h— чтоб сразу в гигабайтах, без этой ебушки-воробушки с килобайтами,vmstat,top. - Просто выполни:
free -h. Увидишь три строчки: Mem, Swap, и поймёшь, пора ли паниковать.
-
Диски, они же хранилище, они же вечная боль:
- На что орать: Во-первых, на свободное место. Если
/или/varзаполнились на 95% — приложение ляжет, а ты сам от себя охуеешь. Во-вторых, на производительность: сколько операций в секунду (IOPS), какая задержка (await). Длинная очередь запросов — диск не справляется. - Инструменты:
df -h— место,iostat,iotop— производительность,du -sh— кто жрёт место в папке. - Магическая команда:
iostat -dx 2. Цифра 2 — это задержка в секундах. Смотри на столбцыawait(чем меньше, тем лучше) и%util(близко к 100% — диск в ахуе).
- На что орать: Во-первых, на свободное место. Если
-
Сеть, она же канал, она же то, что все тормозит:
- На что орать: Сколько данных гоняется туда-сюда (throughput), нет ли ошибок (errors, drops), сколько соединений висит. Высокая задержка (
ping) — пользователи будут материться. - Инструменты:
iftop,nethogs— кто сколько трафика хавает,ss,netstat— кто к кому подключился. - Обязательно:
ss -tulpn. Покажет ВСЕ открытые порты и какой процесс их слушает. Идеально, чтобы найти какую-нибудь левую службу, которая торчит в интернет.
- На что орать: Сколько данных гоняется туда-сюда (throughput), нет ли ошибок (errors, drops), сколько соединений висит. Высокая задержка (
-
Разное по процессам, где тоже всё ебётся:
- На что орать: На утечки файловых дескрипторов. Их лимит кончится — и приложение накроется медным тазом, не сможет новые файлы или сокеты открыть. Ну и вообще, сколько процессов плодится.
- Инструменты:
ps,lsof— король для поиска утечек, можно заглянуть в/proc/sys/fs/file-nr. - Пример:
lsof -p <PID>. Увидишь, сколько всего открыл конкретный процесс. Если число растёт и не падает — вот она, хитрая жопа.
А теперь, ёпта, как делать по-нормальному: Сидеть и вручную это всё тыкать — дело идиота. Настраиваешь на всех серваках сбор метрик (ну, Prometheus с node_exporter, например) и алерты. Чтоб тебе прилетала телега, когда disk_usage > 85% или когда load_average больше, чем ядер в два раза. Тогда ты хотя бы будешь знать о проблеме раньше, чем пользователи начнут слать тебя в сраку.