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

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

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

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

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

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

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

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

решение1

Когда я нахожу что-то подобное, я первым делом проверяю:

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

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

Связанный контент