Повлият ли ошибки 404 css / image link на производительность сервера под нагрузкой? - PullRequest
1 голос
/ 10 декабря 2010

У меня есть несколько изображений и файл css на моем сайте, которых нет на сервере, поэтому каждый раз, когда приходит посетитель, Apache выдает 3 404 ошибки в своем журнале.Элементы скрыты на странице, поэтому это не влияет на отображение страницы.Наш сайт отлично работает в тестовой и производственной среде.Недавно мы получили 2-дневный всплеск трафика в 30 000-40 000 посетителей в день, и apache замедлился, остановившись, подождав 22-25 секунд, прежде чем что-то возвращать в браузер.

Изменится ли ошибка на странице 404 на производительности сервера?

Является ли ошибка 404 более ресурсоемкой, чем обычный запрос?

Любая информация, касающаяся того, как Apache обрабатывает ошибки 404.*

Ответы [ 3 ]

0 голосов
/ 21 марта 2011

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

И программное (и память), и аппаратное обеспечение (физические ограничения и емкость) будет выполнять несколько действий, чтобы правильно отвечать и / или регистрировать взаимодействие с пользователем.

В этом случае, когда ваши пользователи (30 000–40 000) посетили сайт, Apache по-прежнему необходимо было регистрировать все эти ошибки.для того, чтобы выполнить настройки ведения журнала, установленные конфигурацией.Поскольку файл журнала представляет собой просто текстовый файл на диске gard, жесткий диск был слишком занят для чтения и записи фактического содержимого сайта.

Загрузка сервера была бы еще выше, если бы ApacheОшибка Trow 404 в качестве документа. В любом случае, лучший способ повысить производительность сервера - полностью избавиться от любых ошибок 404.

Вы также можете увеличить параметр MaxRequestsPerChild в файле конфигурации Apache до значения около 1000, чтобы уменьшить его.стресс от одного центрального процесса Apache к нескольким подпроцессам.Это позволит нескольким процессам Apache охватывать новые одновременно, увеличивая нагрузку на все ядра ЦП, а не только на одно.

При таком количестве посетителей я бы также рекомендовал изменить MPM вашей конфигурации Apache на что-то вроде этого:

<IfModule prefork.c>
StartServers       2
MinSpareServers    2
MaxSpareServers    5
ServerLimit        100
MaxClients         100
MaxRequestsPerChild  4000
</IfModule>
0 голосов
/ 30 марта 2012

в соответствии с инструкциями Yahoo на сайте переднего плана

* Нет 404 с

HTTP-запросы являются дорогостоящими, поэтому создание HTTP-запроса и получение бесполезного ответа (т.е. 404 Not Found) совершенно не нужны и замедляют работу пользователя без какой-либо выгоды. На некоторых сайтах есть полезные 404 «Вы имели в виду X?», Которые отлично подходят для работы с пользователем, но также тратят впустую ресурсы сервера (например, базу данных и т. Д.). Особенно плохо, когда ссылка на внешний JavaScript неверна, и в результате получается 404. Во-первых, эта загрузка заблокирует параллельные загрузки. Затем браузер может попытаться проанализировать тело ответа 404, как если бы это был код JavaScript, пытаясь найти в нем что-то полезное. *

Возвращаясь к вашему вопросу: ошибка 404 может в худшем случае привести к остановке вашей машины.

0 голосов
/ 10 декабря 2010

Как сказал комментатор ajreal, обслуживаемые документы увеличат распределение ресурсов, но любой сервер, отвечающий на запрос, получит некоторые ресурсы.

...