«Сервер тормозит» - это не диагноз. Двенадцать команд ниже превращают его в диагноз: каждая отвечает на конкретный вопрос, а вместе они закрывают CPU, память, диск, сеть и логи минуты за три.

Нагрузка и CPU

uptime

Три числа load - средние за 1, 5 и 15 минут. Сравнивайте их с числом ядер: load 4 на 4 ядрах - полная загрузка, load 12 - очередь.

top -b -n1 | head -20

Смотрите %us (ваши приложения), %wa (ожидание диска) и %st. Высокий wa указывает на диск; про него ниже.

Память

free -h

Читайте колонку available, а не free: Linux сознательно заполняет свободную память кэшем и отдаёт её по требованию. Беда - когда available около нуля и активно работает swap.

ps aux --sort=-%mem | head -8

Диск

df -h /
du -xh / --max-depth=2 2>/dev/null | sort -rh | head -12

Забитый на 100% корень ломает всё самым неожиданным образом: не меняются пароли, встают базы, пропадают логи. Вторая команда находит, кто съел место.

iostat -x 1 3

%util около 100 при высоком await означает, что узкое место прямо сейчас - диск.

Сеть

ping -c 4 1.1.1.1          # достижим ли мир
mtr --report 8.8.8.8        # где деградирует маршрут
ss -tlnp                    # кто слушает
ss -s                       # сводка по соединениям

Процессы и логи

systemctl --failed
journalctl -p err -S -2h --no-pager | tail -30
dmesg -T | tail -20

OOM-киллер оставляет подпись в dmesg: если процесс загадочно умер ночью, сначала ищите строки «Out of memory».

Один блок для тикета

{ uptime; free -h; df -h /; ss -s; systemctl --failed; } 2>&1
Приложите вывод этого блока к тикету, и вы пропустите целый круг вопросов: это первое, что мы бы всё равно попросили.