У меня есть собственный виртуальный сервер в облаке, на котором запущены nginx и APC. На этом сервере у меня есть один блог WordPress, использующий плагин W3TC. Я включил кеширование страниц и объектов с помощью APC.
При доступе к главной странице, страницам и сообщениям ответ от сервера приходит практически мгновенно. Но при поиске ответ занимает 1 секунду.
Интересно, можно ли сделать ответ быстрее.
Используя WP-плагин Debug Queries, я профилировал поисковый sql-запрос, и для его выполнения требуется всего 0,002. А согласно W3TC большинство объектов кэшируются. Фактически, плагин Debug Queries дает следующий отчет о результатах поиска:
Total query time: 0,01482s for 120 queries.
Page generated in 0,00000s, 0,00% PHP, 0,00% MySQL
Кажется, что страница создается очень быстро. Но ответ от сервера все равно занимает 1 секунду.
Как узнать, из-за чего ответ занимает много времени, даже если страница создается быстро?
Примечание. Я говорю только о времени ответа от сервера, а не о времени, которое требуется для создания страницы в браузере.
Вот пример результат поиска с моего сайта.
Это моя текущая конфигурация php-fpm: http://snipt.org/AiHg7
# tail /var/log/php5-fpm.log
[05-Oct-2013 20:20:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 8 total children
[07-Oct-2013 10:44:55] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 7 total children
[08-Oct-2013 10:20:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 7 total children
# ps aux | grep php
root 1251 0.0 0.1 398732 1328 ? Ss May28 6:38 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
www-data 15678 0.0 1.9 458804 20296 ? S Jul17 0:13 php-fpm: pool www
www-data 18337 3.5 9.5 411072 98300 ? S 14:15 0:57 php-fpm: pool www
www-data 18732 2.6 10.9 426648 112268 ? S 14:20 0:34 php-fpm: pool www
www-data 19504 3.4 9.4 415556 97088 ? S 14:30 0:24 php-fpm: pool www
root 20433 0.0 0.0 7548 828 pts/0 S+ 14:41 0:00 grep php
Установить и настроить Лак и используйте его перед своим блогом WordPress.
Рассмотрите возможность использования плагина поиска. Поиск Sphinx должен дать вам <1 поисков.
http://wordpress.org/plugins/wordpress-sphinx-plugin/
Плагин WordPress Sphinx Search позволяет использовать возможности сервера поиска Sphinx для обеспечения сверхбыстрого и многофункционального поиска на веб-сайтах на базе WordPress.
Sphinx - это сервер полнотекстового поиска с открытым исходным кодом, разработанный с нуля с учетом производительности, релевантности (также известного как качество поиска) и простоты интеграции. Он написан на C ++ и работает в Linux (RedHat, Ubuntu и т. Д.), Windows, MacOS, Solaris, FreeBSD и некоторых других системах.