APC – это аббревиатура от Alternative PHP Caching. Русским текстом – это альтернативный PHP кэшер. Для чего он используется? Как и другие популярные кэшеры, такие как XCache и eAccelerator, он используется для увеличения скорости работы PHP скриптов. Если вы имеете собственный сервер, и вас волнуют вопросы быстродействия PHP скриптов, то APC может стать решением вашей проблемы. В сегодняшней статье мы более подробно узнаем о APC, научимся его устанавливать и тестировать, использовать APC кеширование при написании PHP скриптов.
Что такое акселератор APC?
Акселератор APC (Alternative PHP Cache) - бесплатный и открытый opcode кэшер для PHP. Он был задуман, как бесплатный, открытый и стабильный фреймворк для кэширования и оптимизации исходного кода PHP. APC находится на стадии своего развития. На данный момент поддерживает PHP 4 и PHP 5, включая 5.3. Предположительно будет включен в стандартное ядро PHP шестой версии.Каким образом достигается ускорение работы PHP?
Когда идет задержка загрузки вашего сайта, возникает вопрос – Почему? Дело в том, что при выполнении стандартного обращения к PHP скрипту, каждый раз он компилируется заново. То есть, одна и та же работа делается несколько раз. Если это маленький проект, замедления в работе могут быть незначительными, даже невидимыми. Но если у вас большой проект (сайт), то вы замечали, что при обращении идет задержка загрузки страницы, несмотря на то, что сайт хорошо оптимизирован, в плане сжатия html и сжатия css. Для наглядности, посмотрим, как выполняется стандартный запрос без использования PHP акселераторов:
При этом идут выполнения компиляции кода при каждом запросе. Это отнимает много время на обработку запроса, потому и тормозит. Для обхода этого и придумали акселераторы, представителем которого является APC. Они кэшируют скомпилированный код на диске, после обращения к которому, он выводит результат. Таким образом увеличивается скорость работы PHP. APC может работать в двух режимах, которые настраиваются в файле /etc/php.d/apc.ini, переменная apc.stat. Переменная может принимать значения 1 и 0 (apc.stat=0 или apc.stat=1). При использование режима apc.stat=1 несколько замедляется работа скриптов так, как идет проверка на модификацию файла, но это позволяет избежать проблем, когда код изменен, а выдача результата остается прежней. Поэтому советую поставить значение переменной 1.
После установки акселератора APC, схема выполнения запроса будет следующей:
Установка акселератора APC
Так как в apt обновленные версии добавляются с сильным опозданием. Поэтому будем устанавливать APC через PECL:
sudo apt-get remove --purge php-apc
sudo apt-get install libpcre3-dev
sudo pecl install apc
При установке задаем такую конфигурацию (YMMV):
Enable internal debugging in APC [no] : noдержку
Enable per request file info about files used from the APC cache [no] : no
Enable spin locks (EXPERIMENTAL) [no] : no
Enable memory protection (EXPERIMENTAL) [no] : no
Enable pthread mutexes (default) [no] : yes
Enable pthread read/write locks (EXPERIMENTAL) [yes] : no
Теперь надо включить APC в настройках, т.к. это не делается автоматически. Для этого создаем
файл apc.ini в соответствующем каталоге:
sudo vim /etc/php5/conf.d/apc.ini
и записываем в этом файле следующие настройки(рекомендованные для работы с Magento)
extension=apc.so
apc.enabled=1
apc.shm_size=512M
apc.num_files_hint=10000
apc.user_entries_hint=10000
apc.max_file_size=5M
apc.stat=0
apc.optimization=0
apc.shm_segments=1
apc.enable_cli=1
apc.cache_by_default=1
apc.include_once_override=1
Включаем поддержку APC в Magento
Открываеи файл конфигурации Magento:
vi app/etc/local.xml
и добавляем следуюший код в секцию global:
...
apc
File
0
1
MAGE_
или
apc
database
0
1
MAGE_
...
Где между тегами «Prefix» указывается краткое описание магазина чтобы была возможность
использовать APC для кеширования нескольких магазинов построенных на одной Magento.
Как проверить работу APC?
Прежде всего, вы должны заметить, что PHP скрипты Magento стать работать быстрее. Используйте
Firebug и плагин к нему например YSlow для оценки скорости работы сайта.
Вы можете скачать Firebug расширение для Firefox здесь.
Кроме того вы можете использовать файл apc.php скопировав его из папки дистрибьютива APC в папку
public вашего проекта:
sudo cp /usr/share/php/apc.php /ваш путь к public
Теперь можно в браузере открыть этот файл: http://yourhost.local/apc.php
Есть вариант для просмотра статистики и тестирования использовать команду:
ab -n 100 -c 10 http://proplazma.com/
используемые сайты:
http://kuzvac.ru/post/16573289440/extreme-magento-speed
http://turnkeye.com/blog/magento-performance-apc-cache/
http://blog.djangofan.ru/2013/03/apc-ubuntu-1204.html
http://sitear.ru/material/apc-php
Комментариев нет:
Отправить комментарий