Назад | Перейти на главную страницу

Как диагностировать проблему лагов с ошибками 502 (linux, apache)?

Последние несколько недель я получаю все больше и больше сообщений о задержках на одном из моих сайтов. Я наконец испытал это на собственном опыте на прошлой неделе, но я не смог точно определить проблему.

Загрузка сервера никогда не превышает 0,5 из 16 ядер, а использование памяти достигает 12-13%. Проблема не в базе данных, так как на статических ресурсах может возникнуть задержка. Приблизительно 1 из 10 просмотров страницы дает ошибку 502. Примерно 1 из 5 страниц загружается за 5-20 секунд. Когда вы смотрите на вкладку сети Chrome, она показывает "ожидание" почти все это время.

Вчера вечером я перезагрузил сервер, и несколько часов он казался нормальным, но менее чем через 12 часов все вернулось к нормальным проблемам с задержкой. У кого-нибудь есть советы о том, где я могу попытаться разобраться в проблеме?

Я бы сделал пару вещей.

  1. Выберите «медленный» ресурс с помощью curl из коробки и получите время - посмотрите, проблема в сети между браузером и сервером или в самом сервере.

  2. Используйте что-то вроде Firebug + YSlow или Pagespeed или ВОЗДУШНЫЙ ЗМЕЙ чтобы получить каскадную диаграмму вашей веб-страницы - эти инструменты должны объяснить, является ли проблема медленной загрузкой, DNS или временем отклика веб-сайта (также известным как «время до первого байта»). Это также позволит локализовать проблему.

  3. Убедитесь, что вы регистрируете затраченное время в журнале Apache (% D), и посмотрите, что это вам говорит.

  4. Просто догадка, но это звучит сетево. Сделайте хотя бы netstat и посмотрите, работает ли у вас миллиард подключений.

  5. Сообщение 502 - это не обычный ответ по таймауту, это «плохой шлюз». Обычно они возникают, если с вашим сайтом возникают проблемы с прокси-сервером или шлюзом. Может быть, приложение на вашем сайте выходит из строя после mod_proxy? Я бы попытался устранить это, ударив статический контент из локального, а затем расширившись оттуда.