Ускоряем 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

и перезапускаем веб-сервер.

Размещено: 15.10.2008 17:50 Всего комментариев: 0
Автор: zeus Блог: zeus's blog
Тэги: php , сервер

Комментарии:

Нет комментариев.

Пожалуйста войдите или зарегистрируйтесь чтобы оставлять комментарии.