По поводу лирики о технической эволюции блога только что нашёл заготовки детальной статьи об оптимизации Wordpress, которую я писал в апреле, но потом отложил её и не опубликовал.
Не уверен, что выложу её - она требует повторных экспериментов, поэтому приведу выдержки, не подкрепляя их фрагментами конфигурации.
Итак, имеется сервер с Ubuntu Server 10.10. Сервер мощный - 2 x Xeon X5260@3.33GHz, 8 GB RAM, RAID 1 из двух дисков SAS 15K rpm на аппаратном RAID.
Дисковая производительность слабая по состоянию на текущий момент - всего 100 MBps:
$ sudo hdparm -t /dev/cciss/c0d0 /dev/cciss/c0d0: Timing buffered disk reads: 294 MB in 3.03 seconds = 96.98 MB/sec
Задача - максимизировать производительность Wordpress на этом сервере.
Тесты проводил на сайте с 300 статей, запрашивая домашнюю страницу со 100 конкурентными запросами:
$ ab -n 20000 -c 100 http://benchmark.ctrld.me/
Результаты:
Конфигурация | Requests per second | Load average |
Apache, InnoDB, без APC | 25.83 | 110.29 |
Apache, MYISAM, с APC | 120.47 | 103.54 |
Apache, INNODB, с APC | 118.50 | 100.43 |
Apache, InnoDB, APC, W3 Cache (file) | 893.14 | 2.06 |
Apache, InnoDB, APC, W3 Cache (apc) | 907.26 | 1.04 |
Apache, InnoDB, APC, W3 Cache (memcached) | 893.21 | 1.09 |
Nginx + Apache + APC + плагин кеширования | 868.17 | 0.52 |
Nginx + Apache + APC + плагин кеширования + Nginx Cache | 6984.47 | 0.01 |
P.S. На данный момент я отказался от Apache, оставил nginx fastcgi_cache, но не использую никаких плагинов кеширования. На повторных обращениях к одной странице выигрыш потрясающий, однако генерация новой страницы занимает сравнительно длительное время. Я решу этот вопрос и сделаю финальную статью. Текущие результаты не привожу, так как мощность тестового сервера и VPS очень разные.