В общем многие держат свои сервера и часто жалуются, что мол их сайты со временем начинают тупить. долгая генерация, много памяти потребляется.
И часто валят это всё на то, что дело в скрипте и его нужно оптимизировать (часто так и есть).
Но вот ты оптимизировал скрипт, выжал всё что можно, но всё ровно результат не удовлетворяет?
Тут стоит задуматься над настройкой самого сервера.
Как показывает практика у многих веб сервер это apache2 + mod_php.
Так как mod_php по умолчанию требует prefork_mpm, то apache для обработки каждого отдельного соединения создает отдельный процесс.
Как думаете как это влияет на потребление памяти?
Так же у единиц есть nginx front + apache2 back + mod_php
nginx занимался выдачей статики и по пустякам не дёргал apache.
Но ребята ведь apache можно убрать вообще. (я не буду говорить как установить, настроить. Но я могу сделать это за несколько $)
php-fpm позволяет демонизировать php дабы избежать затрат на запуск процессов (чем страдает CGI) что умеет и FastCGI. Но php-fpm дает также другие полезные возможности:
- запуск пулов обработчиков от имени заданных пользователей,
- динамическое управление количеством запущенных обработчиков,
- возможность перезапуска обработчиков в случае, если с ними что-то не так,
- ведение лога медленных запросов по аналогии с mysql,
- страницы статуса и пинга,
- прочее.
Например я php-fpm прикрутил к nginx через unix-сокет.
Но всё это цветочки.
Ягодки пошли при бенчмарках. Производительность возврала до 60% (!!!)
Но стоит отметить, что я юзаю так же cache, memcached и другие методы ускорения работы ресурса.
Кстати сам php-fmp и nginx можно держать на разных машинах
В общем это всё, что я хотел сказать если вам нужно повысить производительность ресурса, а просто оптимизация CMS не помогает. Стоит подумать о переходе на nginx + php-fpm