Apache быстро сжирает всю память сервера

php оптимизация apache

Есть сайт, размещенный на DDS-хостинге (1 Гб памяти, 1 ГГц процессор). Сайт большой и тяжелый, но в нем используется кэширование, при этом очень активно. Кэшируются не страницы, а блоки страниц. В итоге имеем стабильный размер кэша около 200 мб. Запросов к БД при использовании кэширования не много: до 20 на страницу.

Проблема в том, что сайт стал резко тормозить. Сначала он был на простом VPS с 384 Мб памяти - все работало отменно, время генерации страниц устраивало. Потом хостер перенес наш сайт с одного сервера на другой - сайт стал тормозить. Купили DDS с гораздо большими ресурсами, но проблема осталась.

Хостер говорит, что проблема в скриптах, типа они не оптимизированы. Но ведь еще неделю назад на скромном VPS все работало хорошо, с тех пор абсолютно ничего не менялось. Сейчас Apache сжирает всю доступную память - гиг. Если его перезапустить, то он высвобождает ее, но очень быстро, в течение нескольких минут опять сжирает весь гиг.

Посещаемость ресурса небольшая - в день примерно 10 тысяч запросов. Самое удивительное, что даже использование eAccelerator не ускорило ни разу производительность.

Куда копать? То ли хостер гонит и сам че-то накосячил при переносе сервера, то ли мы сами виноваты - скрипты кривые. Как можно быстро и безболезненно ускорить сайт в такой ситуации? Может быть кто настройки для Apache предложит новые?
Ответы:
Блин, тут и совета-то толкого не дашь.
Вообще eAccelerator должен не хило помогать, скорее дело в настройках apache.
Попробуйте начать с прочтения страничек по ссылкам.
Скорее всего в настройках Apache допущена ошибка.
Ещё есть такое предположение: может у вас, всё-таки, посещаемость увеличилась, от этого и проблемы начались.
VPS с 384Мб мог работать на XEN, а тот, что на 1Гб - с помощью какой-нибудь другой технологии виртуализации. В XEN ограничивается используемая память (как на реальном сервере), а во многих других системах виртуализации - выделяемая память. Например, программы на яве (да и другие тоже, особенно те, где есть свой менеджер памяти) часто выделяют себе много памяти "про запас", и суммарное выделение может намного превышать общий объем RAM. Это отлично работает на XEN и настоящем выделенном сервере (т.к. реально RAM не тратится), но приводит к жуткой нехватке памяти, например, в OpenVZ (м.б. и Virtuozzo, но тут не уверен, с ним не знаком близко).
P.S.
1. насчет "большей частью статика" - был неправ, прочитал внимательнее вопрос. Но по поводу замены apache все в силе.
2. 20 запросов к БД при использовании кеширования - все ж довольно много. Точно не получится кешировать страницы? Может так случиться, что достаточно будет просто настроить squid в режиме reverse proxy, чтобы все "залетало".
3. Если исползование eAccelerator нисколько не ускорило производительность, то, может быть (всякое бывает), процессы php (или что у Вас там) запускаются веб-сервером в режиме cgi, а не mod_php или fastcgi - в таком случае опкод-кеширование не помогает, а только мешает, т.к. процессы убиваются после первого использования.
> Проблема в том, что сайт стал резко тормозить.
>  Сначала он был на простом VPS с 384 Мб памяти - все работало отменно, время генерации страниц устраивало.
> Потом хостер перенес наш сайт с одного сервера на другой - сайт стал тормозить.
Внимательно сравнить настройки apache на обоих серверах, особенно по php и выделению памяти, в частности.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.