20 Linux-команд для диагностики проблем на сервере
Когда сайт начинает тормозить, перестает отвечать почта или сервер внезапно уходит в высокую нагрузку, первое желание — перезагрузить VPS. Но гораздо полезнее сначала понять причину проблемы.
В Linux есть множество встроенных инструментов, которые позволяют быстро определить источник нагрузки и найти неисправность. В этой статье собраны команды, которыми я чаще всего пользуюсь при диагностике серверов и веб-проектов.
1. uptime — общая информация о нагрузке
uptime
Показывает время работы сервера и показатель Load Average за последние 1, 5 и 15 минут.
15:30:12 up 45 days, 3:21, 2 users,
load average: 0.15, 0.22, 0.19
Если значения нагрузки значительно превышают количество ядер процессора, сервер перегружен.
В своих проектах я использую серверную инфраструктуру Timeweb
Хостинг, VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.
Перейти на Timeweb2. top — просмотр процессов
top
Показывает процессы, использование процессора и памяти в реальном времени.
3. htop — удобная альтернатива top
htop
Позволяет быстро отсортировать процессы по CPU или памяти и завершить зависший процесс.
4. free — проверка памяти
free -h
Показывает использование оперативной памяти и swap.
Если память заканчивается и активно используется swap, сайт может заметно тормозить.
5. vmstat — состояние системы
vmstat 1
Отображает статистику по процессору, памяти, дисковой подсистеме и очередям процессов.
Полезно для поиска узких мест в производительности.
6. iostat — нагрузка на диски
iostat -xz 1
Показывает загрузку дисковой подсистемы.
Особенно полезно, если сервер работает медленно из-за большого количества операций чтения или записи.
7. iotop — кто нагружает диск
iotop
Позволяет увидеть процессы, активно работающие с диском.
Часто помогает найти проблемный бэкап, импорт данных или процесс базы данных.
8. df — свободное место на дисках
df -h
Проверка заполнения файловых систем.
Если диск заполнен на 100%, могут перестать работать сайты, базы данных и почта.
9. du — поиск больших каталогов
du -sh /var/*
Помогает определить, какой каталог занимает больше всего места.
10. ss — сетевые подключения
ss -tulpn
Современная замена netstat.
Показывает открытые порты и процессы, которые их используют.
11. netstat — проверка сети
netstat -tulpn
На старых серверах до сих пор встречается чаще, чем ss.
12. lsof — какие файлы открыты процессом
lsof -p 1234
Показывает файлы, сокеты и подключения конкретного процесса.
13. lsof для сетевых подключений
lsof -i :80
Можно быстро определить, какой процесс занимает порт.
14. dmesg — системные сообщения ядра
dmesg | tail -50
Позволяет увидеть ошибки оборудования, файловой системы и драйверов.
15. journalctl — журнал systemd
journalctl -xe
Один из первых инструментов для поиска причин сбоев сервисов.
16. journalctl для конкретного сервиса
journalctl -u nginx
Позволяет быстро найти ошибки Nginx, PHP-FPM или других служб.
17. sar — историческая статистика
sar -u
Показывает загрузку процессора за прошлые периоды.
Полезно, когда проблема уже произошла и нужно понять, что было раньше.
18. tcpdump — анализ сетевого трафика
tcpdump -i any port 80
Позволяет анализировать входящие и исходящие сетевые соединения.
Часто используется для диагностики API, SMTP и интеграций.
19. curl — проверка ответа сайта
curl -I https://example.com
Позволяет проверить HTTP-заголовки и код ответа сервера.
20. ps — поиск проблемных процессов
ps aux --sort=-%cpu | head
Показывает процессы, потребляющие больше всего процессорного времени.
Что проверять первым делом, если сервер тормозит?
Обычно диагностику начинаю в следующем порядке:
- uptime — оценка нагрузки;
- free -h — память и swap;
- top или htop — активные процессы;
- iostat и iotop — дисковая нагрузка;
- df -h — свободное место;
- journalctl и dmesg — ошибки системы;
- ss или netstat — сетевые подключения.
В большинстве случаев этих команд достаточно, чтобы за несколько минут найти причину высокой нагрузки, зависания сайта или проблем в работе сервера.
Комментарии