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

Очень долгое (> 300 с) время обработки запроса на сервере Apache, обслуживающем статический контент с определенных IP-адресов.

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

После тонны исследований мы наконец нашли в нашей конфигурации выражение «Запретить ни с кого», которое вызывало обратный поиск DNS (время ожидания истекло), что решило большую часть наших проблем, но у нас все еще есть некоторые клиенты, которых мы видим. журналы Apache (с использованием% D в формате журнала) со временем обработки запросов> 300 с для изображений, CSS, javascript и другого статического содержимого.

Мы проверили все операторы Deny / Allow на предмет повторного появления «none», а также все другие известные нам вещи, которые могут вызвать обратный поиск DNS (например, использование «REMOTE_HOST» в правилах перезаписи с использованием% a вместо% h в наша конфигурация формата журнала), а также проверили, что HostnameLookups имеет значение "Off".

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

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

Заранее спасибо.

Когда я нахожу такие вещи, я сначала проверяю:

  1. DNS. Используйте сетевой дамп, например tcpdump или wireshark чтобы проверить это, а не просто взглянуть на файл конфигурации. Если вы уверены, что проблема не в этом,
  2. Как выглядят traceroute / ping для этих пользователей? Есть ли у всех них что-то общее? Я видел, что плохой NAT-бокс вызывает нескончаемое горе. Я также видел локальный трафик для пользователя, из-за которого мой сайт выглядел медленнее, чем для других пользователей без загруженных соединений, но они ЗАМЕТИЛИ мой медленный.
  3. Межсетевой экран / туннелирование. Они делают что-то глупое, например, блокируют весь ICMP? Они в туннеле? Если да, то есть вероятность, что обнаружение PMTU каким-то странным образом истекло.

Обратите внимание, что время отклика 300 с, вероятно, означает, что Apache отказался от них, а не то, что он был обслужен. 5 минут - это очень долгое время для ожидания сервера, но еще более безумно для клиента ждать так долго.