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

Долгое время ответа от сервера

У нас сайт с высокой посещаемостью, на пике он 1000 одновременных пользователей, и как минимум 100 пользователей одновременно. В среднем это 40,000 к 100,000 визит в день. Проблема в том, что иногда он загружается очень медленно (мы назвали этот раз как время бедствия :)), в то время, когда мы пытаемся загрузить сайт с Firefox, это показывает waiting...(Я пробовал это со многими провайдерами по всему миру)

Мы мониторим сервер на катастрофа раз, CPU load , Memory Usage нормальные. Также медленный журнал запросов MySQL нет ни одного запроса до 1 sec. Apache ошибок нет. iotop не показывает ничего, что вызывает эту катастрофу.

Очень интересно, что время бедствия и пиковые нагрузки никак не связаны. Иногда катастрофа случается в 300 одновременный пользователь и другое время разные. Я не могу найти между ними никакой связи.

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

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

Если вы используете Linux, вы можете использовать tcpdump, например:

$ tcpdump dst port 80

Но я не думаю, что это сильно поможет. Я бы постарался исключить как можно больше переменных. Моя первая мысль, что это может быть проблема с сетью.

Попробуйте создать журнал Apache с указанием времени ответа, например:

LogFormat "\"%{%Y-%m-%d %H:%M:%S}t\" %V %m \"%U\" \"%q\" %{Content-Type}o %s %B %O %D" responsetime
CustomLog "/var/log/apache2/responsetime.log" responsetime

Затем попробуйте подключиться к веб-серверу с машины / сервера на том же коммутаторе.

Если это кажется нормальным, попробуйте использовать что-нибудь вроде time wget http://localhost/index.html -q --output-document=/dev/null сделать это на той же коробке.

Количество одновременных пользователей / посещений не имеет ничего общего с мощностью / производительностью системы - все зависит от одновременных подключений и того, что делают эти запросы.

Добавление времени ответа на запрос в журнал вашего сервера было бы началом - если они не отражают проблему, скорее всего, проблема в сети. Я заметил, что вы не ссылаетесь на журналы своего веб-сервера в своем вопросе - вы их проверяли?

Вы считаете, что у вас большие объемы трафика, и ваш вопрос подразумевает, что у вас только один сервер. Зачем? (несколько серверов усложнили бы эту специфику, такую ​​как распределение нагрузки, но также упростили бы большую часть диагностики, однако это не повлияло на производительность и доступность).

Отслеживание количества подключений и их состояние также предоставляет важные данные для диагностики проблемы.

Как я могу отслеживать пакеты во время аварии?

С программой захвата пакетов - она ​​может быть запущена где угодно, от клиента до сервера. Я использую wirehark (доступен в Linux, MSWindows и других)

Было бы полезно, если бы вы упомянули, какую версию / MPM использует ваш сервер и на какой ОС он работает.