Сначала контекст, затем команды
«Сервер работает медленно» — ещё не диагноз. Уточните, что именно происходит: долго открывается одна страница, задерживается SSH, завершается процесс или вся система перестала отвечать. Запишите время и последнюю известную рабочую проверку.
Полезно сразу определить систему и продолжительность её работы. После недавней перезагрузки часть симптомов может исчезнуть, но причина останется.
hostnamectl
uptimeСравнивайте показатели с обычным состоянием именно этого сервера. Универсального «правильного» значения нагрузки для всех машин нет.
Нагрузка и память: смотрим вместе
uptime показывает среднюю нагрузку за несколько интервалов. Это не процент использования процессора. Для понимания причины сопоставьте её с числом ядер, активностью процессов и ожиданием ввода-вывода.
nproc
top
free -hВ top начните с процессов, которые потребляют ресурсы прямо сейчас. Небольшой единичный пик и постоянная высокая загрузка требуют разных решений. Если сборка или резервное копирование закончились, нагрузка может нормализоваться без вмешательства.
В выводе free полезнее смотреть на доступную память, а не только на колонку free: Linux использует часть памяти для файлового кэша. Само по себе наличие кэша не означает нехватку RAM.
Использование swap тоже оценивайте в динамике. Старые страницы в swap не доказывают, что система испытывает давление на память прямо сейчас.
Место на диске — не единственная граница
Файловая система может заполниться по объёму или по количеству inode. Поэтому полезны обе проверки:
df -h
df -iСначала найдите проблемную файловую систему. Затем уточните, какие каталоги занимают место. Для каталога, который вы уже выбрали, можно посмотреть суммарный размер:
du -sh /var/logНе удаляйте файлы только потому, что они большие. Уточните владельца, назначение и правила хранения. Удаление открытого файла не всегда немедленно освобождает место: процесс может продолжать удерживать его дескриптор.
Службы и журнал дают контекст
На системе с systemd список неуспешно запущенных служб помогает сузить поиск. После этого исследуйте конкретную службу, а не перезапускайте всё подряд.
systemctl --failed
systemctl status example.service --no-pager
journalctl -u example.service --since "30 minutes ago" --no-pagerexample.service — условное имя. Замените его реальным именем службы. В журнале важны первые сообщения перед ошибкой, повторяемость события и связь со временем возникновения симптома.
Перед передачей журналов другим людям проверьте, нет ли в них токенов, имён пользователей, адресов или других данных, которые не стоит раскрывать.
Короткий порядок действий
- Опишите конкретный симптом и время его появления.
- Сохраните данные о нагрузке, памяти, дисках и нужной службе.
- Сформулируйте одну проверяемую гипотезу.
- Если нужно изменение — сохраните конфигурацию и способ отката.
- После изменения повторите ту же проверку, с которой начали.
Этот порядок не заменяет понимания приложения, но помогает не потерять исходные данные и связь между действием и результатом.
Подробнее: systemctl и journalctl в документации systemd.