Ускоряем PHP - Акселератор APC
Когда ваш любимый сайт на Drupal/Symphony/.. начинает тормозить, возникает вопрос - почему? Основная причина тормознутости PHP без акселератора - комплияция кода при каждом обращении. Как выглядит обработка запроса пользователя по умолчанию:
- Загрузили файл
- Скомпилировали код
- Выполнили код
- Выдали результат
При этом процесс компиляции кода выполняется при каждом запросе страницы и отнимает большую часть времени на обработку запроса. Для обхода этого узкого места были разработаны PHP акселераторы - эти модули кешируют скомпилированный код в памяти/на диске и в разы увеличивают производительность PHP. Одним из самых простых в установке и стабильных является акселератор APC. APC может работать в двух режимах, которые настраиваются в переменной apc.stat файла /etc/php.d/apc.ini При первом обращении к файлу в обоих режимах он сначала компилируется, после чего скомпилированный код кешируется. При последующих выполнениях файла последовательность действий будет другой:
apc.stat=0apc.stat=1
- Выполнение кешированного кода
-
Выдача результата
-
Проверка, модифицировался ли файл с момента кеширования.
- Перекомпиляция, если модифицировался
- Выполнение
- Выдача результата
Вариант с apc.stat=1 несколько замедляет работу засчет проверки времени модификации файла, однако позволяет избежать многочисленных непоняток, когда код уже изменен, а выдача еще старая :)
Установка APC на CentOS/RHEL/Fedora:
*Подключаем репу stalwart'а содержащую актуальный apc
wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo
yum install php-pecl-apc
Теперь осталось отредактировать /etc/php.d/apc.ini по вкусу и перезапустить веб-сервер.
Установка APC на Debian/Ubuntu:
apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++
pecl install apc
Редактируем /etc/php5/apache2/php.ini добавляя:
extension=apc.so
и перезапускаем веб-сервер.
Комментарии:
Нет комментариев.
Пожалуйста войдите или зарегистрируйтесь чтобы оставлять комментарии.