Оптимизация работы web-сервера

Mar 12, 2010 16:35



Сейчас немного напишу про такой замечательный продукт, как eAccelerator.
Что это такое? Это, если примитивно, кеш для php-скриптов. Как он работает?
Посетитель обращается к php-скрипту. Интерпретатор его "компилирует" и выдает в html результат его работы. Другой посетитель тоже обращается к этому скрипту, интерпретатор снова его э.. "компилирует" и снова выдает результат и так далее. Рутина. Все бы ничего, вот только скриптов таких часто на сервере сотни и даже десятки тысяч. И посетителей бывает не меньше. Что в итоге создает на сервер очень большую нагрузку. Что делает eAccelerator? Он всего лишь кеширует результат сего "компилирования" и при следующем запросе к php-скрипту проверяет, есть ли в кеше результат. Если есть - отдает его веб-серверу из кеша без повторного "компилирования".
Сегодня его установил, настроил и проверил разницу. В итоге нагрузка на моем веб-сервере (на нем несколько сайтов) упала с ~30% до 0.4%.

И так. Сперва:

# apt-get install php5-dev

После этого лезем на оф.сайт и качаем актуальный релиз.
Распаковываем, запускаем phpize.
После этого

# ./configure --enable-eaccelerator=shared
# make
# make install

Далее создаем в /etc/php5/conf.d/eacclerator.ini и в него записываем:

zend_extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so"
eaccelerator.shm_size = "0"
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 = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "7"
eaccelerator.allowed_admin_path = "/var/www/"

Создаем каталог для кеша:

# mkdir /var/cache/eaccelerator
# chmod 777 /var/cache/eaccelerator

И рестартуем наш веб-сервер.

php, интернет, СПО, системный администратор, работа, настройка, просвещаемся, linux, ubuntu, администрирование

Previous post Next post
Up