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

Memcached — система для кеширования данных в оперативную память. Используется для снижения нагрузки на БД.

Установка memcached на сервер производится отдельно. Для начала, нужно memcached скачать на свой сервер. Конфигурационного файла нет у memcached, настройка поэтому осуществляется при запуске демона.

# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211

Команда означает, что memcached стартует как демон, с 2г памяти и слушает порт 11211 на адресе 10.0.0.40

Небольшая заметочка с оффсайта.

Because a 32-bit process can only address 4GB of virtual memory (usually significantly less, depending on your operating system), if you have a 32-bit server with 4-64GB of memory using PAE you can just run multiple processes on the machine, each using 2 or 3GB of memory.

32-битные процессы не могут использовать более 4г оперативной памяти, поэтому на 32-битных архитектурах нужно запускать несколько процессов по 2-3г каждый.

Теперь включаем поддержку memcached в wordpress.

Само собой, php должен быть собран с поддержкой memcached –enable-memcache[=DIR].

Скачиваем memcached plugin for wordpress. Можно воспользоватся встроенным установщиком плагинов.

Копируем object-cache.php и memcached-client.php в папку wp-content (не в папку для плагинов)

Настройка memcached почти готова, теперь нужно указать $memcached_servers в wp-config.php. Это массив из айпи:порт. По умолчанию коннектится на 11211 порт на localhost.

Пример конфига memcached:

$memcached_servers = array('192.168.1.1:11211', '192.168.1.2:11211');

Полезные ссылки:
Настройка и использование memcached, оффсайт

На закуску.

13 responses


Do you want to comment?

Comments RSS and TrackBack Identifier URI ?

Можешь подсказать как можно затюнинговать сервер?
Сейчас у меня 384 Мб оперативы и проц 600 Мгц. Свободно оперативки —  129468k, средняя нагрузка — 0,5
ПО: апач, еакселлератор, пхп,мускль
На сервере стоит около 70 вордпресс и около 20 форумов. С форумами проблем нет, грузятся быстро. А вот вордпресс открывается от 5 до 20 секунд. Посещаемость — низкая, меньше 1000 уников на все сайты.
Имеет ли смысл ставить энжиникс в качестве фронтенда? Чем еще можно ускорить?

Август 9, 2009 6:27 пп

Неплохо посмотреть в какую сторону тормоза, точнее из-за чего. Может нехватать оперативки, может не успевать диск писатся, может база не тянуть. Исходя из этого уже плясать
Имеет смысл добавить ресурсов на твой вдс, для него уже я думаю предел вот-вот наступит.

Август 9, 2009 9:00 пп

Установил мемкашед, установил модуль мемкаш для пхп, установил эти файлики в вордпресс. Как можно проверить производительность memcached? Никакой разницы не почуствовал. Тестировал утилитой ab -с 10 -n 50. Одинаковые результаты, что до, что после.

Октябрь 7, 2009 5:27 дп

количеством запросов к базе

Октябрь 9, 2009 7:53 дп

И чет я не вкурил. Мемкашед может чтоли только с одним сайтом работать? Установил эти файлики на двух блогах. На одном -все ок, на другом -выдает контент из первого блога.

Октябрь 22, 2009 1:22 дп

Надо будет опробовать, а то чувствую блог мой начинает подвисать

Март 16, 2010 4:27 пп

Михаил, а с чего подвисает? Посещаемость не такая уж высокая

Март 16, 2010 6:36 пп

Ad1ce, та же сама проблема :( на одном сайте работает, а другой перестает открыватсья, как я понимаю нужно «соли» добавить для уникальности кэшей, но вот где не знаю :(

Август 26, 2010 10:09 пп

Alex Volkov, мне всегда казалось, что для вордпресса это не совсем требуется тут то запросов не очень много (если оптимизированная тема) можно снизить до 6-8 запросов (как-то встречал такую темку), в моей конечно много, но не считаю базу узким местом, тут больше жрет apache, но это только мое мнение

Август 31, 2010 4:50 пп

BFox, мне один пионэр как-то пытался блог заддосить, так вот база самая первая отвалилась. Так что фиг знает, узкое место база или нет.

Август 31, 2010 5:04 пп

Нашел решение для работы мемкэшеда с 2 и более сайтами на вордпрессе. В плагине необходимо заменить строчку:
$this->blog_prefix = ( is_multisite() ? $blog_id : $table_prefix ) . ‘:’;
на
$this->blog_prefix = ( is_multisite() ? $blog_id : ‘www_lobachev_ru’ ) . ‘:’;
где www_lobachev_ru - уникальная запись для каждого блога.

Август 31, 2010 9:42 пп

Alex Volkov, проверяя siege’ем обычно валится апач, все хочу попробовать php-fpm поставить вместо него, но все руки не доходят ) Пока nginx + apache хорошо себя ведут.
А насчет ддоса, может у тебя тема тяжелая? И много запросов..

Сентябрь 1, 2010 8:10 дп

Это все конечно же круто, но в W3Cache этот функционал тоже заложен.
Но все равно для wp база всегда является узким местом, если не вдаваться в жесткую игру с напильником.
На днях нарвался на такую штуку, довольно претенциозную — http://www.mongopress.org/
Мне кажется у wp будущее за nosql, тем более, что структура системы к этому располагает, ну а поиск по сайту можно и через sphinx сделать.
Может уже кто-то ковырял это чудо — http://www.mongopress.org/ ?

Февраль 1, 2012 9:52 пп

Comment now!
















Trackbacks

1