Здесь довольно обширная задача. Проблемы могут быть где угодно, начиная от ошибок на физическом/канальном уровне, и заканчивая тем, что периодически кем-то генерируется огромнейший объём трафика, который забивает канал.
Что нужно сделать в первую очередь?
Проанализировать файлы-журналов (log-файлы)
Исследовать все лог-файлы системы на наличие ошибок сетевого интерфейса/ядра.
В зависимости от системы это может быть:
/var/log/syslog
/var/log/messages
/var/log/kern.log
Кроме того есть программа dmesg
, которая показывает вам вывод ядра.
Проанализировать ошибки на сетевых интерфейсах
Статистику по сетевым интерфейсам (количество ошибок)
можно просмотреть командами:
ifconfig
netstat -i
netstat -p (информация о tcp)
Возможно там вы увидите, что пакеты приходят битыми, не приходят, так далее.
Чётко конкретизировать сбой, проанализировать возможные его источники
Нужно проанализировать все симптомы проявляющего сбоя и выяснить, в чём именно они выражаются, какие подсистемы могут быть затронуты.
В частности:
- является ли проблема сугубо сетевой или затронуты и локальные процессы;
- на каких направлениях возникает проблема;
- каких протоколов касается проблема;
- есть ли какая-то временная закономерность в появлении сбоя;
и так далее.
Проанализировать поведение системы в момент/период сбоя
Нужно посмотреть, что происходит с системой, когда
начинается сбойный период, т.е. когда она плохо работает.
Нужно пропинговать её в этот момент, посмотреть, теряются ли пинги.
Если теряются, проверить систему с помощью traceroute
, возможно пакеты теряются по дороге.
С помощью trafshow
посмотреть, нет ли аномально высокого трафика в этот момент.
С помощью top
/htop
/sar
посмотреть, нет ли аномально активных процессов в этот момент.
Если сбой происходит не часто и возможности интерактивного вмешательства в него нет, нужно по максимум настроить все системы мониторинга + системы автоматического обнуражения сбоя (например, пинги начали пропадать или усилилась нагрузка на канал и так далее; короче нужно написать скрипт, который будет фиксировать ожидаемое событие и информировать о наступлении сбоя).
Собранная статистика поможет ответить на поставленные вопросы и существенно локализовать проблему. Когда проблему будет локализована, решить её будет очень просто.