我在云中拥有自己的虚拟服务器,运行 nginx 和 APC。在此服务器上,我有一个使用 W3TC 插件的 wordpress 博客。我已使用 APC 启用页面缓存和对象缓存。
当访问首页、页面和帖子时,服务器的响应几乎是即时的。但当进行搜索时,响应需要 1 秒钟。
我想知道是否可以加快响应速度。
使用 Debug Queries WP-plugin,我分析了搜索 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
答案1
安装和配置漆并在您的 WordPress 博客前使用它。
答案2
考虑使用搜索插件。Sphinx 搜索应该可以为您带来 <1 次搜索。
http://wordpress.org/plugins/wordpress-sphinx-plugin/
WordPress Sphinx 搜索插件允许使用 Sphinx 搜索服务器的功能在基于 WordPress 的网站上实现超快速且功能丰富的搜索。
Sphinx 是一款开源全文搜索服务器,从设计之初就充分考虑了性能、相关性(即搜索质量)和集成简易性。它使用 C++ 编写,可在 Linux(RedHat、Ubuntu 等)、Windows、MacOS、Solaris、FreeBSD 和其他一些系统上运行。