Назад | Перейти на главную страницу

Как ускорить ответ сервера на результаты поиска (WP, nginx, apc)

У меня есть собственный виртуальный сервер в облаке, на котором запущены 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.

http://sphinxsearch.com/

Sphinx - это сервер полнотекстового поиска с открытым исходным кодом, разработанный с нуля с учетом производительности, релевантности (также известного как качество поиска) и простоты интеграции. Он написан на C ++ и работает в Linux (RedHat, Ubuntu и т. Д.), Windows, MacOS, Solaris, FreeBSD и некоторых других системах.