The Apple Geek

Чему ты научился сегодня?

Настройка блога Wordpress на Mac OS X. Часть 3, кеширование

Для быстрой работы блог нужно всячески кешировать. Я использую комбинацию из нескольких способов - кеширование на уровне Wordpress WP Super Cache, на уровне PHP - eAccelerator, Memcached и заодно кеширование запросов MySQL. По крайней мере хуже не становится, а улучшение производительности налицо.

Один из полезнейших плагинов Wordpress - это WP Super Cache. Он из категории “must have”. Настройки:

Есть некоторые проблемы с WPTouch, поэтому нужно отключить кеширование для мобильных устройств:

Список для копирования:

bot
ia_archive
slurp
crawl
spider
iphone
ipod
android
dream
cupcake
webos
incognito
webmate
opera
mini
blackberry9530
blackberry9500

Memcached. Я его раньше не использовал, но всегда хотел. Особой эффективности для небольшой нагрузки я не заметил, но он по крайней мере работает. Процесс установки:

$ sudo port install memcached
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.memcached.plist
$ sudo port install php5-memcache

И перезапускаем apache.

Статус демона memcached можно посмотреть таким образом:

$ echo stats | nc 127.0.0.1 11211

Для того, чтобы Memcached использовался в Wordpress, ставим плагин WP Memcached Manager. Настройки:

Статус работы:

EAccelerator. Нужен. Однозначно. Теория - на сайте разработчиков. Процесс установки и настройки:

$ sudo port install php5-eaccelerator
$ sudo vim /opt/local/var/db/php5/eaccelerator.ini

eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter="*.php"
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

И перезагружаем apache.

Включаем кеширование запросов в MySQL:

$ sudo vim /etc/my.cnf
query_cache_type = 1
query_cache_size = 26214400

И перезагружаем MySQL.

Статус работы:

$ mysql mysql
SHOW STATUS LIKE 'Qcache%';
SHOW STATUS LIKE 'Questions%';

И в завершение тестируем быстродействие сайта:

$ ab -n 1000 -c 1 http://high-sale.ru

Но и это ещё не всё. Продолжим оптимизацию уже на nginx, одно из направлений - выставление Expire для определённых типов файлов, а также компресирование ответов. Продолжение следует.

Comments