(我search了这个论坛几个小时,发现了一些话题,但没有人为我工作)
我使用WordPress : Varnish + Nginx + PHP-FPM + APC + W3 Total Cache + PageSpeed 。
当我使用光油时,我第一次打电话给www.mysite.com只用了10%的CPU。 调用第二次,它将被caching。 问题是在URL中传递请求参数 。
只有一个请求( www.mysite.com?1 = 1)显示在top :
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7609 nginx 20 0 438m 41m 28m S 11.6 7.0 0:00.35 php-fpm 7606 nginx 20 0 437m 39m 26m S 10.3 6.7 0:00.31 php-fpm
页面完全加载后,上面的这些过程仍然是活动的。 2秒后,它们被另外2个php-fpm进程替代(下图),这些进程在3秒钟内激活。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7665 nginx 20 0 444m 47m 28m S 20.9 7.9 0:00.69 php-fpm 7668 nginx 20 0 444m 46m 28m R 20.9 7.9 0:00.63 php-fpm
只有1个请求没有被caching的40%的CPU使用率!
奇怪的东西:
当我尝试做10请求(按F5键10x),服务器停止服务,并在php-fpm日志中出现:
警告:[池www]服务器达到max_children设置(10),考虑提高它
我把这个值提高到了20,同样的问题。
我正在使用pm=ondemand ( pm.max_children=10和pm.max_requests=500 )。
初始我使用pm=dynamic ( pm.max_children=10 , pm.start_servers=1 , pm.min_spare_servers=1 , pm.min_spare_servers=2 , pm.max_requests=500 ),它发生了同样的问题。
任何人都可以帮忙,PLZ? 任何帮助,将不胜感激!
PS:
很难debugging问题的来源。
我会说减less你的设置。
您正在使用:Varnish + Nginx + PHP-FPM + APC + W3 Total Cache + PageSpeed
你为什么需要清漆? nginx也可以对静态页面进行caching。 看看fastcgi_cache
PHP-FPM和APC应该没问题,只要考虑给APC足够的内存,以便所有文件都可以caching而不会出现内存问题和碎片。
为什么你需要W3总caching? 根据configuration选项,这可以占用大量的CPU,例如用于缩小代码或caching页面或数据库调用磁盘…
与mod_pagespeed – 这是一个处理输出文件的包装,也增加了使用CPU周期的复杂性。
所以 – 如果你想要一个更快的网站,我会说解开这个混乱,并简化它:
摆脱清漆:如果你没有一个强大的用例。 nginx可以做caching就好,configurationnginx使用fastcgi_cache并使用套接字与PHP-FPM对话。
摆脱W3TC:使用memcached和memcache对象caching插件 。 这是您的数据caching和对象caching。 要caching整个页面,只要使用nginx或Varnish即可。 如果使用batcache在memcached中caching整个页面,则可以摆脱为nginx或Varnishconfiguration整页caching。 也尝试使用套接字为memcached。
摆脱mod_pagespeed 。 阅读它为您做的优化,并尝试将这些应用于您的博客主题或手动图片。 如果你在nginx中使用gzip,大部分的东西不应该是重要的。
启用MySQL查询caching并查找性能优化的MySQL设置。 如果你有很多的写作(比如很多评论),可以考虑使用InnoDB。
使用PHP 5.4甚至PHP 5.5 – 很多的性能和内存改进进入这些版本,应该给你一些加速和内存节省。
更高级的方法:
看看xdebug分析器 。 这应该给你一个破旧的function,消耗大量的CPU。 该页面提供了一些关于如何使用kcachegrind查看生成的数据的细节 。
您可以尝试在进程树上使用strace来查看系统调用的数量。 你需要-f标记这个,可能只是打印统计信息-c应该足以了解一个可能的问题。
我想说的是应用KISS原则,只有在性能或者调优的情况下,如果你有一个明确的用例,工具才能通过性能分析来改进。