В последнее время мне довелось сделать несколько сайтов на CMS Joomla1.5. В целом эта система оставила о себе очень приятные впечатления, если бы не одно НО – уж очень она медленная. Задержки, которые требовались системе на то чтобы сгенерировать страницу, ощущались даже на тестовой домашней машине. Основная причина низкой производительности заключалась в том, что скрипт Джумлы во время сборки страницы подключает множество дополнительных файлов, которые обычно разбросаны в разных каталогах и, таким образом, создает нагрузку на дисковую систему веб-сервера. Для увеличения быстродействия Joomla существует множество способов, начиная от включения кеширования созданных страниц в админке системы до таких радикальных методов как установка специальных кеширующих расширений на сам веб-сервер. В сегодняшнем посте я рассмотрю одно из таких расширений – eAccelerator
eAccelerator – бесплатное расширение языка PHP с открытым исходным
кодом, которое предназначено для оптимизации и динамического
кеширования скриптов. Увеличение быстродействия скриптов на языке PHP достигается
за счет создания кеша уже скомпилированных скриптов. Таким образом,
устраняется расход ресурсов на их повторную компиляцию. Расширение
также выполняет оптимизацию скриптов для того чтобы ускорить их
работу. eAccelerator обычно уменьшает нагрузку на сервер и увеличивает
скорость выполнения php-скриптов примерно в 1-10 раз.
Это означает что расширение успешно скомпилировано. Запускаем команду make install или копируем вручную файл eaccelerator.so из директории modules/ дерева исходников в директорию с расширениями языка php (у меня это /usr/lib/php5/20060613+lfs/ У вас путь может отличаться).
Описание значения этих настроек можно найти в файле README в архиве с исходниками и поэтому повторять их здесь я не буду. Обратите внимание на параметр .cache_dir – он определеляет директорию в которой будет расположен кеш. Эта директория должна быть создана (mkdir /tmp/eaccelerator) и на нее должны быть установлена права достаточные для записи в нее пользователем от которого запущен веб-сервер. Для начала можете поставить chmod 0777 /tmp/eaccelerator но в дальнейшем советую изменить настройки на более секьюрные.
Всё. Перезапускаем веб-сервер, заходим браузером на один из сайтов и проверяем директорию с кешем. Если вы все сделали правильно, то вас уже можно поздравить с успешно установленным расширением.
Настроим Джумлу для работы с eAccelerator. Для этого нужно зайти в
админку и выбрать в пункте Global Configuration закладку System. В
разделе Cache Settings выбираем Yes и в качестве обработчика (cache
handler) указываем eAccelerator.
Для измерения производительности я использовал Apache
Benchmark. Замерялись обращения к главной странице сайта на Джумле -
1000 обращений в течении каждого из тестов. По результатам
средняя скорость выдачи страниц увеличилось в ~3 раза. По-моему неплохо.
Если вам понравился этот сайт, вы можете подписаться на rss
Отзывы: 6 комментариев
driestinhet
16 Март 2009 в 20:33
Мне понравилось. Стока полезного материала. Тока обновляйтесь почаще
Компьютерщик
11 Апр 2009 в 2:13
Спасибо за статью. Успехов Вам!
Павел
24 Ноя 2009 в 9:28
А как выбрать eAccelerator в джумле если там в выпадающем списке “Обработчик кэша” есть только вариант “Файл” ?
Руслан
25 Ноя 2009 в 3:00
Это значит что eAccelerator не установлен на веб-сервере… Джумла показывает только те варианты кеша, которые доступны в настоящий момент…
Павел
25 Ноя 2009 в 7:33
Хостер мне сегодня сообщил, что eAccelerator есть, но выключен ибо может способствовать DDoS атакам. Для меня это загадка.
[?php echo extension_loaded('eaccelerator') ?] выдаёт true
[?php print_r(get_extension_funcs('eaccelerator')); ?] выдаёт неполный набор функций, а частности нет eaccelerator_get() и eaccelerator_put()
Петр
16 Фев 2010 в 9:17
Интересная статья. Нужно будет проверить.
Ваш отзыв