Установка и настройка xCache для кеширования PHP скриптов
Для ускорения выполнения php скриптов существуют так называемые акселераторы.Суть их в том, что один раз вызванных php скрипт компилируется и попадает в кеш акселератора. После чего при повторном обращении к скрипту он уже отдается в откомпилированном виде. Что очень сильно сказывается на нагрузке на сервер, так как теперь не нужно каждый раз компилировать заново скрипт.
xCache
Использование акселератора в несколько раз уменьшает время генерации страницы, а так же уменьшает нагрузку на процессор сервера. Так у меня после настройки Xcache на сервере количество используемого процессорного времени уменьшилось практически в двое. А так как я использую для размещения своих сайтов виртуальный сервер, где плачу только за использование ресурсов, использование php-акселератора уменьшает итоговою стоимость аренды сервера.
Итак приступим к установке на сервер акселератор php кода — Xcache .
Я использую на сервере операционную систему Ubuntu 10.04 , но и на более новых, например недавно вышедшей Ubuntu LTS 12.04 14.04 с долговременной поддержкой, все будет выглядеть так же. Так же все работает на Debian 7.
Устанавливаем:
Установится последняя стабильная версия, по этому ничего компилировать не нужно.sudo apt-get install php5-xcache
После установки открываем файл конфигурации в /etc/php5/conf.d/xcache.ini
У меня он выглядит так:
xcache.size = 128M
xcache.count = 14
xcache.slots = 8K
xcache.ttl = 36000
xcache.gc_interval = 36000
xcache.var_size = 8M
xcache.var_count = 14
xcache.var_slots = 8K
xcache.var_ttl = 36000
xcache.var_maxttl = 604800
xcache.cacher = On
xcache.stat = On
Основные параметры:
xcache.size — отвечает за количество памяти для хранения кеша. Если значение будет слишком маленьким, то эффекта от кеширования толком не будет.
xcache.count — количество блоков, на которые будет делиться кеш. Рекомендуется выставлять по количеству ядер процессора.
xcache.slots — Количество слотов под кеш, чем больше слотов, тем больше скорость поиска в кеше. Но и увеличивается потребление памяти. Рекомендуется оставлять значение по умолчанию: 8K
xcache.ttl -Время жизни кешированного объекта в секундах. Если к объекту никто не обращался в течении указанного времени, объкт помечается как не используемый, и в последующем удаляется из кеша сборщиком мусора.
xcache.gc_interval — интервал запуска сборщика мусора в секундах. Определяет промежуток времени, через который будет запускться сборщик мусора. Запустившись, он ищет записи с истекшим временем жизни(xcache.ttl ) и удаляет их из кеша.
Два последних параметра(xcache.ttl и xcache.gc_interval ) очень важны в настройке Xcache, но на многих сайтах значения данных параметров выставлены в 0, соответственно из кеша ничего не удаляется, и при полном заполнении новые скрипты уже в него не попадают. То есть, если вы разместите на сервере новый сайт, то его скрипты уже не попадут в кеш, так как он полностью заполнен скриптами предыдущего сайта.
Параметры начинающиеся с xcache.var_ отвечают за кэширования результатов вычислений. И их параметры аналогичны.
После сохранения настроек следует перезапустить вебсервер.
sudo /etc/init.d/apache2 restart
Просмотр статистики Xcache
У Xcache есть своя админка, которая позволяет просматривать текущее состояние и очищать кеш.Что бы она заработала, нужно скопировать папку admin из /usr/local/share/examples/xcache/admin/ в каталог вашего сайта.(Ubuntu)
В Debian 7 данный каталог лежит по пути /usr/share/xcache
Но перед этим следует установить пароль в файле конфигурации. За это отвечают параметры
xcache.admin.enable_auth
xcache.admin.user= «user»
xcache.admin.pass= «password»
пароль нужно указывать как md5хеш для большей надежности.
Получить md5хеш можно выполнив
phpecho md5("password");?>
или можно получить хеш например на сайте http://mainspy.ru/shifrovanie_md5Slots — Количество слотов под кеш, чем больше слотов, тем больше скорость поиска в кеше. Но и увеличивается потребление памяти. Рекомендуется оставлять значение по умолчанию: 8K
Size — размер памяти под Xcache.
Avail — сколько памяти осталось.
Clear — сбросить кеш.
Hits — сколько обращений к файлам было сделано
Misses — сколько обращений к файлам было сделано, но этих файлов в памяти не оказалось.
Clogs — временно заблокированных файлов в кеше.
OOMs — Количество файлов которые не смогли попасть в кеш изза нехватки памяти.
Cached — Общее количество файлов в кеше.
Нижняя таблица показывает какие файлы кэшируются и насколько эффективно.
Hits — кол-во обращений к этому скрипту в памяти. Чем больше — тем лучше. Если для некоторых файлов долгое время это значение меньше 10, то значит этот файл редко используется, и лишь занимает место в памяти.
Size — размер этого файла в памяти. Вот тут самое интересное. Получается, что откомпилированный файл занимает в памяти в 10 раз больше места, чем на диске. OMG!
SrcSize — размер файла на диске
Access — как давно обращались к этому файлу
Create — сколько времени этот файл лежит в кэше