Какие основные ресурсы Linux-сервера необходимо мониторить?

Ответ

Ключевые ресурсы, за которыми я постоянно слежу на серверах:

  1. Центральный процессор (CPU):

    • Что смотреть: Утилизация (%user, %system, %iowait), загрузка (load average). Высокий iowait часто указывает на проблемы с диском.
    • Инструменты: top, htop, mpstat, vmstat, sar.
    • Пример: mpstat -P ALL 1 показывает утилизацию по каждому ядру каждую секунду.
  2. Оперативная память (RAM):

    • Что смотреть: Общее использование, свободная память, кэш/buffer, использование swap. Опасный признак — активное использование swap при высокой загрузке RAM.
    • Инструменты: free -h, vmstat, top.
    • Пример: free -h дает понятный вывод в гигабайтах.
  3. Дисковое пространство и ввод-вывод (Disk I/O):

    • Что смотреть: Свободное место на разделах (/, /var, /home), скорость чтения/записи (IOPS, throughput), время отклика (latency), очередь запросов.
    • Инструменты: df -h, iostat, iotop, du -sh.
    • Пример: iostat -dx 2 показывает статистику по устройствам каждые 2 секунды, включая await (среднее время ответа) и %util (процент утилизации).
  4. Сетевая подсистема:

    • Что смотреть: Пропускную способность (throughput) на интерфейсах, количество ошибок/сбросов, количество активных соединений, задержку (latency).
    • Инструменты: iftop, nethogs, ss, netstat, ping, traceroute.
    • Пример: ss -tulpn показывает все слушающие сокеты и связанные с ними процессы.
  5. Контекст процесса:

    • Что смотреть: Количество запущенных процессов/потоков, использование файловых дескрипторов.
    • Инструменты: 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+ 🔞

А, ну слушай, вот тебе на самом деле жизненно важная хуйня, без которой на сервере делать нечего. Если ты это не мониторишь — ты не админ, а так, мартышлюшка с клавиатурой. Запоминай, что надо глазеть постоянно, а то будет вам хиросима и нигерсраки в один прекрасный день.

  1. Проц, он же CPU, он же голова:

    • На что орать: На то, чем он занят — %user, %system, и особенно этот ёбаный %iowait. Если iowait зашкаливает — это не проц тупит, это твой хард корчится в агонии, пытаясь что-то прочитать. Ну и load average, куда ж без него.
    • Чем смотреть: top, htop — классика, mpstat, vmstat, sar — для глубокого копания.
    • Пример команды, чтоб не бздеть: mpstat -P ALL 1 — будет показывать каждую секунду, как каждое ядро пыхтит. Увидишь, если одно ядро в отключке, а остальные овердохуища грузятся.
  2. Оперативка, она же RAM, она же память:

    • На что орать: На общую занятость, на своп. Вот смотри: если свободной памяти — хуй с горы, но при этом swap активно используется — это пиздец, Карл. Система уже начала сбрасывать данные на медленный диск, всё ебется об лед.
    • Инструменты: free -h — чтоб сразу в гигабайтах, без этой ебушки-воробушки с килобайтами, vmstat, top.
    • Просто выполни: free -h. Увидишь три строчки: Mem, Swap, и поймёшь, пора ли паниковать.
  3. Диски, они же хранилище, они же вечная боль:

    • На что орать: Во-первых, на свободное место. Если / или /var заполнились на 95% — приложение ляжет, а ты сам от себя охуеешь. Во-вторых, на производительность: сколько операций в секунду (IOPS), какая задержка (await). Длинная очередь запросов — диск не справляется.
    • Инструменты: df -h — место, iostat, iotop — производительность, du -sh — кто жрёт место в папке.
    • Магическая команда: iostat -dx 2. Цифра 2 — это задержка в секундах. Смотри на столбцы await (чем меньше, тем лучше) и %util (близко к 100% — диск в ахуе).
  4. Сеть, она же канал, она же то, что все тормозит:

    • На что орать: Сколько данных гоняется туда-сюда (throughput), нет ли ошибок (errors, drops), сколько соединений висит. Высокая задержка (ping) — пользователи будут материться.
    • Инструменты: iftop, nethogs — кто сколько трафика хавает, ss, netstat — кто к кому подключился.
    • Обязательно: ss -tulpn. Покажет ВСЕ открытые порты и какой процесс их слушает. Идеально, чтобы найти какую-нибудь левую службу, которая торчит в интернет.
  5. Разное по процессам, где тоже всё ебётся:

    • На что орать: На утечки файловых дескрипторов. Их лимит кончится — и приложение накроется медным тазом, не сможет новые файлы или сокеты открыть. Ну и вообще, сколько процессов плодится.
    • Инструменты: ps, lsof — король для поиска утечек, можно заглянуть в /proc/sys/fs/file-nr.
    • Пример: lsof -p <PID>. Увидишь, сколько всего открыл конкретный процесс. Если число растёт и не падает — вот она, хитрая жопа.

А теперь, ёпта, как делать по-нормальному: Сидеть и вручную это всё тыкать — дело идиота. Настраиваешь на всех серваках сбор метрик (ну, Prometheus с node_exporter, например) и алерты. Чтоб тебе прилетала телега, когда disk_usage > 85% или когда load_average больше, чем ядер в два раза. Тогда ты хотя бы будешь знать о проблеме раньше, чем пользователи начнут слать тебя в сраку.