Apache, черезмерная нагрузка

Возникла проблема в чрезмерной нагрузке на машинку, сам ящик вполне неплох и должен держать веб-сервер спокойно, но начал затыкаться по 500й и 502й ошибкам, код php был не моим, и пришлось разбираться откуда же идет нагруз.

конечно же первое, что меня заинтересовало — сам код
процессы не будут генерировать бОльшее количество запросов, чем предусмотрено исполняемым скриптом, следовательно
1. оптимизируйте запросы в рабочем скрипте, иногда проще задать БД один громоздкий вопрос, чем много простых

машинка у нас вполне достаточна для веб-сервера и если на ней не крутится больше ничего, значит выработка каждого запроса — излишняя трата ресурсов.
2. поставьте фронтэндом к апачу nginx, мне в одном из проектов подобное решение сильно помогло снизить нагрузку

так же не стоит забывать о ддос
3. проверяйте входящие запросы на ддос, такие функции существуют во всех FW семейства *nix, например для PF вполне адекватный пример. в ipfw существует замечательный параметр limit src-addr, конечно не спасет от отморозков, но от мелких хулиганов спасает

потом можно посмотреть в сторону ботов
4. избавьтесь от ботов, конечно же если SEO для Вас не имеет значения
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
SetEnvIfNoCase User-Agent "^Google" search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot

SetEnvIfNoCase User-Agent «^Yandex» search_bot
SetEnvIfNoCase User-Agent «^Yahoo» search_bot
SetEnvIfNoCase User-Agent «^Google» search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot
это пример

на вскидку все, но если не помогает — можно подумать еще

Помогла заметка - поделись с другом:
  1. Комментов пока нет

  1. Трэкбэков пока нет.

Оставьте эти два поля как есть:

 
Яндекс.Метрика