У меня проблемы с диагностикой случайной задержки в кластере LAMP из 6 серверов, обслуживающем сайт MediaWiki. Пока мы обслуживаем около 100 страниц в секунду, сами серверы работают нормально с нагрузкой менее 0,5, без заблокированных процессов, без подкачки страниц, без регистрации ошибок и т. Д.
time nslookup google.com
изменяется случайным образом от нескольких миллисекунд до нескольких секунд, а иногда полностью истекает по таймауту. Хотя мы используем IP-адреса внутри кластера, это может быть признаком основной проблемы. У нас нет собственного DNS-сервера.server-status
страницы случайным образом задерживаются или задерживаются. Бенчмаркинг с использованием ab
между серверами показывает, что некоторые нагрузки иногда занимают 3000 мс (почти точно). Сравнительный анализ server-status
на самом локальном сервере, как правило, проблем не возникает (из нескольких сотен тестов он показывал отставание только один раз).Серверы находятся за коммутатором и брандмауэром, к которому у меня нет доступа, поэтому я не знаю их настройки или статус. Пока мы находимся под более высокой, чем обычно, нагрузкой, входящий трафик 2 Мбит / с и исходящий трафик 20 Мбит / с не должны вызывать нагрузку на коммутатор или межсетевой экран, не так ли? Мне кажется, что это коммутатор / брандмауэр или что-то выше них в ISP, например, их DNS, но не могу это подтвердить.
Мне нужны другие тесты или методы диагностики этого отставания, чтобы попытаться сузить конечную причину.
Проблема оказалась в том, что брандмауэр имел жестко установленное ограничение в 10 000 подключений. Трудность с отслеживанием этого была в основном из-за отсутствия доступа к брандмауэру и убеждения поставщика услуг в том, что проблема действительно существует.
Диагностика проблем почти всегда требует наличия какой-либо формы мониторинга.
Раскатайте что-нибудь вроде OpenNMS, InterMapper, Кактусы, или если вы в отчаянии Nagios, и посмотрите на трафик, загрузку системы и т. д., когда увидите проблему. Информация, которую предоставляет ваша система мониторинга, вероятно, поможет вам выяснить, что не так.