Для быстрой работы блог нужно всячески кешировать. Я использую комбинацию из нескольких способов - кеширование на уровне 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 для определённых типов файлов, а также компресирование ответов. Продолжение следует.