Оптимизируем сервак. Memcache

В предыдущей статье я описал пару простых приёмов освобождения оперативной памяти. Сейчас же поговорим насчёт ускорения работы скриптов.
Хорошим тоном нынче является связка Apache + Nginx, которая работает чуть быстрее по сравнению с обычным Апачем, в силу особенностей передачи запросов от Nginx ему. Дополнением к этой связке будет служить мод memcache и eAccelerator, которые призваны кэшировать и ускорять выполнение php-скриптов.
Вкратце, механизм их действия простой: к примеру, если их не использовать, то каждый раз сервер должен выполнять скрипт для посетителя. Если посетителей сотни, а скрипт каждый раз выдаёт одну и ту же информацию для всех, то трата ресурсов получается впустую. Вместо этого ускорители выполняют скрипт один раз и выдают посетителям информацию уже из кэша, без необходимости траты ресурсов на выполнение.
Установка memcache. Способ 1
Всё ниже описанное подходит для серверов с CentOS 5 и им подобным.
Зайдите в шелл (для этого можно использовать популярную программку PuTTy) и вводите следующие команды (можно копировать здесь и вставлять туда правой кнопкой мыши):
cd /usr/local/src
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum -y install memcachedПосле чего в файле /etc/sysconfig/memcached и замените параметр OPTIONS на:
OPTIONS="-l 127.0.0.1"Добавляем memcache в автозагрузку командами:
/etc/init.d/memcached start
chkconfig memcached onСледующим пунктом нужно установить библиотеку PHP-memcache:
yum -y install php-pecl-memcacheВ файл php.ini (в /etc/) в секцию [extensions] внесите строчку:
extension=memcache.soПерезагрузите httpd:
/etc/init.d/httpd restartили
service httpd restartУстановка memcache. Способ 2
yum install libmemcache memcached -yСтартуем:
memcached -d -m 256 -l 127.0.0.1 -p 11211 -u nobodyМожно также добавить в автозагрузку командами из предыдущего способа. Для следующего шага потребуется наличие библиотеки phpize. Если таковой нет, нужно установить php-devel:
yum install zlib-develУстанавливаем библиотеку для работы с PHP:
wget http://pecl.php.net/get/memcache-2.1.2.tgz
tar -xvf memcache-2.1.2.tgz && cd memcache-2.1.2
phpize && ./configure --enable-memcache && make && make installВ файл php.ini (в /etc/) в секцию [extensions] внесите строчку:
extension=memcache.soТеперь библиотека установлена и должна работать. Обычно она ускоряет работу скриптов примерно на 30%.

Спасибо за советы! То что нужно для движка Social Engine!
Привет!
А как быть, когда выполняешь команду
/etc/init.d/memcached start
а в ответ получаешь:
Starting memcached: chown: `memcached\r’: invalid user
to switch toe user memcached
[FAILED]
Уже потратил пару часов на решение проблемы и всё в пустую...
Возможно, ещё при установке у вас проблемы возникли. Как вариант, поставить свежий мемкэшд из исходников, а не с репозиториев (ну мало ли). Ну или попробовать юзера memcached создать (но не уверен, что дело в этом).
Спасибо за статью! Все получилось сделать с первого раза способом 2 вперемешку со способом 1 :)