Как ускорить веб-сервер? или установка XCache

Раздел: FreeBSD
Написано: 4.05.2010
Автор: Antonio

Как правило, наибольшую нагрузку на веб-сервер создают процессы php и mysqld, конечно нужно оптимизировать код веб-сайтов и оптимизировать структуру и запросы к базе данных.

Но.. не всем дано, да и железо сейчас настолько мощное, что без труда переваривает кучу информации.
Одна из возможностей ускорить выполнение php-кода и в следствии чего разгрузить сервер и получить прирост генерации страниц сайта — это установка системы кеширования результатов выполнения скриптов PHP.

Такая система не одна, сейчас пользуются популярностью eAccelerator, XCache, APC..

Первой системой что я начал использовать была eAccelerator.
Но на последней связке FreeBSD 8 + apache-2.2.14 + php 5.3.2, eAccelerator пошел в отказ и не хотел работать, ругаясь при этом примерно так

eAccelerator: shmmax should be at least 2MBPHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
failed

Попробовав различные танцы с бубном и уменьшал память для кеша и увеличивал kern.ipc.shmmax, вот только не пробовал ulimit -SHn 65535, я решил что это знак и нужно попробовать другую систему кеширования.

Выбор пал на XCache, и так начнем..

cd /usr/ports/www/xcache ; make install clean

Из опций, ничего не отмечаю
Enable code coverage dumper
по умолчанию она не включена и служит для определения предотвращения переполнения памяти

после установки копируем конфиг
cp /usr/local/share/examples/xcache/xcache.ini /usr/local/etc/php/

создаем пароль для доступа в админку
md5 -s FWFWGd232fgfd4334 (пароль и хэши я изменил :-) )

Правим конфиг под себя
ee /usr/local/etc/php/xcache.ini

в строку xcache.admin.pass вставляем хэш пароля который получился после выполнения md5 -s ..
параметр xcache.size устанавливайте в зависимости от количества оперативной памяти сервера

[xcache-common]
extension = xcache.so
 
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "admin"
xcache.admin.pass = "8fa3ad1043ac3280f2c3cf90273c718a"
 
[xcache]
xcache.shm_scheme =        "mmap"
xcache.size  =               256M
xcache.count =                 4
xcache.slots =                8K
xcache.ttl   =                 0
xcache.gc_interval =           0
 
xcache.var_size  =            4M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
 
xcache.test =                Off
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"
 
xcache.coredump_directory =   ""
 
xcache.cacher =               On
xcache.stat   =               On
xcache.optimizer =            On
 
[xcache.coverager]
xcache.coverager =          Off
xcache.coveragedump_directory = ""

Перезапускаем apache

apachectl -k graceful

и проверяем подключился ли XCache

php-cgi -v

должна быть примерно такая строка with XCache v1.3.0, Copyright (c) 2005-2009, by mOo

Последний шаг — подключаем админку XCache
для этого копируем содержимое каталога /usr/local/share/examples/xcache/admin в нужный нам каталог веб-сервера, далее проверяем заходим по адресу, вводим логин и пароль (см. конфиг) и вуаля! Мы можем видеть чем живет наш XCache.

Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

11 комментариев

Андрей
Окт 15, 2010 17:38

спасибо, помогло!

 
Sergey
Янв 24, 2011 01:54

Есть ли статистика по применению XCache ? Насколько уменьшилось время доступа ? Используется ли сейчас XCache ?

 
Antonio
Фев 2, 2011 03:16

Статистики нет, но еакселлераторе на похожей системе время теста уменьшалось в 5-10 раз, визуально сайты с хкешем работают быстрее и это уже хорошо.

 
tracker
Июл 17, 2011 15:33

У меня плохой хостинг, большие ограничения! Поможет ли включение этой функции снизить нагрузку? :(

 
Antonio
Июл 17, 2011 16:44

Должно помочь

 
AVTO
Авг 23, 2011 08:08

На стабильность не влияет? Не проверяли?

 
Antonio
Авг 23, 2011 16:47

Проблем замечено не было, под нагрузкой тоже держалось.

 
takprosto
Авг 24, 2011 14:32

Установил, ставил на дебиан, все прошло без запинок единственное не нашел админку, в указанной папке пусто , где еще её искать ?

 
Antonio
Авг 24, 2011 15:30

/usr/local/share/examples/xcache/admin
вы тут смотрели?
возможно в линуксе файлы админки расположены в другом месте,
попробуйте поискать

locate xcache
(конечно база locate должна быть обновлена)

 
dosaaf
Апр 27, 2013 04:53

Я правильно понимаю что PHP должен выполняться как CGI? Или можно и как модуль апача?

 
Antonio
Апр 27, 2013 18:38

У меня работает через модуль Apache

 

Написать

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com