2010-12-10 1 views
0

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

Будут ли ошибки, связанные с ошибкой 404 на странице, изменить производительность сервера?

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

Любая информация re: способ, которым Apache обрабатывает ошибки 404, будет оценен по достоинству.

Спасибо, Sj

+0

зависит от того, вы метаруете документ 404 или нет? – ajreal

+0

html-страница загружается отлично, есть два изображения и css-файл, который вызывается со страницы, которая не существует на сервере. Ошибки невидимы для конечного пользователя. –

ответ

0

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

+0

не выдается документ 404, пользователь никогда не видит ошибок. Ошибка 404 появляется только в наших журналах apache. –

0

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

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

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

Загрузка сервера будет еще выше, если Apache выполнил бы ошибку 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

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

* Нет ошибки 404

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^