Определить источник проблем сервера

Рейтинг: 0Ответов: 1Опубликовано: 17.04.2015

У меня такой вопрос - как можно определить присутствует ли на сервере проблема с интернет каналом??

Ситуация: есть выделенный сервер, с достаточно хорошими параметрами - процессор, память, и т.д.

Проблема: время от времени сервер становится плохо доступным, то есть страницы загружаются очень долго, по 10-15 секунд, консоль по SSH некоторое время не реагирует ни на что. Длится это несколько минут, а затем всё проходит, и скажем всё что я печатал появляется в консоли, страница подгружается и т.д.

Ответы

▲ 7Принят

Здесь довольно обширная задача. Проблемы могут быть где угодно, начиная от ошибок на физическом/канальном уровне, и заканчивая тем, что периодически кем-то генерируется огромнейший объём трафика, который забивает канал.

Что нужно сделать в первую очередь?

Проанализировать файлы-журналов (log-файлы)

Исследовать все лог-файлы системы на наличие ошибок сетевого интерфейса/ядра. В зависимости от системы это может быть:

  • /var/log/syslog
  • /var/log/messages
  • /var/log/kern.log

Кроме того есть программа dmesg, которая показывает вам вывод ядра.

Проанализировать ошибки на сетевых интерфейсах

Статистику по сетевым интерфейсам (количество ошибок) можно просмотреть командами:

ifconfig
netstat -i
netstat -p (информация о tcp)

Возможно там вы увидите, что пакеты приходят битыми, не приходят, так далее.

Чётко конкретизировать сбой, проанализировать возможные его источники

Нужно проанализировать все симптомы проявляющего сбоя и выяснить, в чём именно они выражаются, какие подсистемы могут быть затронуты.

В частности:

  • является ли проблема сугубо сетевой или затронуты и локальные процессы;
  • на каких направлениях возникает проблема;
  • каких протоколов касается проблема;
  • есть ли какая-то временная закономерность в появлении сбоя; и так далее.

Проанализировать поведение системы в момент/период сбоя

Нужно посмотреть, что происходит с системой, когда начинается сбойный период, т.е. когда она плохо работает.

Нужно пропинговать её в этот момент, посмотреть, теряются ли пинги.

Если теряются, проверить систему с помощью traceroute, возможно пакеты теряются по дороге.

С помощью trafshow посмотреть, нет ли аномально высокого трафика в этот момент.

С помощью top/htop/sar посмотреть, нет ли аномально активных процессов в этот момент.

Если сбой происходит не часто и возможности интерактивного вмешательства в него нет, нужно по максимум настроить все системы мониторинга + системы автоматического обнуражения сбоя (например, пинги начали пропадать или усилилась нагрузка на канал и так далее; короче нужно написать скрипт, который будет фиксировать ожидаемое событие и информировать о наступлении сбоя).

Собранная статистика поможет ответить на поставленные вопросы и существенно локализовать проблему. Когда проблему будет локализована, решить её будет очень просто.