Главная > Debian, WordPress, Статьи > Что такое eAccelerator и установка на Debian.

Что такое eAccelerator и установка на Debian.

eAccelerator — это ускоритель и оптимизатор PHP-кода. Увеличивает производительность PHP скриптов за счет кэширования их в компилированном состоянии,тем самым eAccelerator значительно уменьшает нагрузку на сервер и увеличивает скорость вашего кода PHP в разы. Также оптимизирует скрипты для их ускоренного выполнения.
Помимо eAccelerator существуют и другие акселератор PHP — XCache, Alternative PHP Cache (APC)
Для меня ни так важен акселератор PHP, просто решил попробовать и сравнить результаты работы с ним и без него, тем более что у меня блог на wordpress, ну и так для общего развития.
Для теста поставил с нуля WordPress 3.2.1 использовал VirtualBox и Debian 6.0.3, добавил в footer.php строки

«<"?php if (is_user_logged_in()) { ?">»
«<"?php echo get_num_queries(); ?">» запросов за «<"?php timer_stop(1); ?">» секунд.»<"?php ?">»
«<"?php echo ' | Потребление памяти: ' . round(memory_get_usage()/1024/1024, 2) . 'MB'; }?">»

получаем
19 запросов за 0,475 секунд. | Потребление памяти: 17.32MB

и это на почти на пустом, с 4-5 постами.
Теперь ставим eAccelerator и дополнительные пакеты, если у нас совсем свежая система и нам не жаль трафика ставим пакет build-essential, или можно отделаться make
Дополнительный пакеты:
$ apt-get install php5-dev build-essential
На момент написания последния версия Release-0.9.6.1 или смотрим на сайте https://eaccelerator.net/
$ mkdir ~/tmp && cd ~/tmp
$ wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2
$ tar -xvf eaccelerator-0.9.6.1.tar.bz2
$ cd eaccelerator-0.9.6.1
Конфигурация
$ phpize
$ ./configure --enable-eaccelerator=shared

Установка
$ make && make install
Прописываем собранный модуль в конфигурационном файле (/etc/php5/apache2/php.ini) или возможно отдельно в eaccelerator.ini. В Debian конфигурационные файлы для различных расширений PHP 5 хранятся в каталоге /etc/php5/conf.d, а ссылка на этот каталог присутствует в конфигурационном файле PHP5 /etc/php5/apache2/php.ini,
что означает, что все файлы из /etc/php5/conf.d считываются при запуске или перезапуске Apache.
создадим в каталоге /etc/php5/conf.d/ файл eaccelerator.ini.
Но для начало создаем папку для кэша и выставим права:
$ mkdir -p /var/cache/eaccelerator
$ chmod 0777 /var/cache/eaccelerator
$ nano /etc/php5/conf.d/eaccelerator.ini

extension=»eaccelerator.so»
eaccelerator.shm_size=»32″
eaccelerator.cache_dir=»/var/cache/eaccelerator»
eaccelerator.enable=»1″
eaccelerator.optimizer=»1″
eaccelerator.check_mtime=»1″
eaccelerator.debug=»0″
eaccelerator.filter=»"
eaccelerator.shm_max=»0″
eaccelerator.shm_ttl=»3600″
eaccelerator.shm_prune_period=»1800″
eaccelerator.shm_only=»0″
eaccelerator.compress=»1″
eaccelerator.compress_level=»4″

eaccelerator.shm_size — Размер кэша совместно используемой памяти, устанавливается в мегабайтах. eaccelerator.shm_size=»16″ — по-сути дефотный размер, рекомендую не менее 32
eaccelerator.cache_dir — Директория для дискового кэша. eAccelerator сохраняет в ней бинарное представление кода и другие данные.
eaccelerator.debug — Включение или отключение отладчика. Если Вы будите заниматься отладкой акселератора, то есть смвсл его включать. 1 – включить, 0 – отключить.
eaccelerator.shm_ttl — Время, по истечении которого не используемый код должен быть удален из совместно используемой памяти при превышении объема выделяемой памяти, указывает в секундах.
По умолчанию эта опция отключена, рекомендуется устанавливать значение от 60 до 300 при большом количестве файлов и от 900 до 1800 при малом количестве файлов.
eaccelerator.shm_prune_period — При недостаточной свободной памяти, eAccelerator пытается удалить старые данные, если предыдущая попытка была сделана более «shm_prune_period» секунд назад. По умолчанию значение «0″, при котором eAccelerator не будет пытаться удалить старый данные из памяти.
eaccelerator.compress_level=»9″ можно освободить ресурсы процессора, думаю что сжатие на 9 не имеет смысла, вполне достаточно «3″-»4″.
Перезагружаем Apache:
$ /etc/init.d/apache2 restart
При помощи функции phpinfo() убеждаемся, что модуль успешно подключен и функционирует.
$ touch test.php

«<"? phpinfo(); ?">«

или в консоле
$ php -v

PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 13:13:26)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

И получаем на нашем тестовом сайте:
19 запросов за 0,324 секунд. | Потребление памяти: 6.83MB
против
19 запросов за 0,475 секунд. | Потребление памяти: 17.32MB
Тут цифры говорят сами за себя, а ставить или нет eAccelerator личное дело каждого. :)

Несколько полезных заметок:
- для phpmyadmin в /etc/apache2/apache2.conf добавляем вот это:

«<"Directory /usr/share/phpmyadmin">»
php_admin_value eaccelerator.enable 0
«<"/Directory">«

Еще так же обращаю внимания что при обновлении php можно легко отключить eaccelerator.
Пример из /var/log/apache2/error.log:

[eAccelerator] This build of «eAccelerator» was compiled for PHP version 5.3.3-1ubuntu9.4.
Rebuild it for your PHP version (5.3.3-1ubuntu9.5) or download precompiled binaries.»

Необходимо войти на сайт, чтобы написать комментарий.
#

//