一、问题描述
1、19号手动升级到wordpress4.1,21号早上7点看网站php探针,发现系统负载过高,差不多在1到1.5之间。
2、虽然对于双核处理器,这个值还可以接受,但是之间负载都只有0.2左右,而网站流量又没有突然增加很多,所以推定肯定是出问题了。
3、eth 外网流量正常,lo 本地流量增长很快,reboot系统后(之间服务器已经稳定运行了632天9小时25分钟),1个小时不到就有了1G的流量。
4、top命令发现php-cgi 占用cpu很多,大部分时间都在80%到90%之间,cpu time+ 时间很长。
二、解决方法
1、百度搜索:php cgi cpu找到文章
http://blog.chinaunix.net/uid-20639775-id-3044237.html
2、修改php-fpm.conf
request_terminate_timeout 0s 改为30s
request_slowlog_timeout 0s 改为3s
重启php-fpm:/usr/local/php/sbin/php-fpm restart
3、查看slow.log发现,每一个统计时间点里都有如下提示
script_filename = /网站路径/wp-cron.php
[0xbfcaa950] do_action_ref_array() /网站路径/wp-cron.php
4、想到可能和wp-cron.php有关,于是百度搜索:wp-cron.php找到:
http://www.lamp99.com/wordpress-timing-tasks-wp-cron-php-caused-the-host-cpu-excessive-solution.html
5、于是找到php-cgi进程占用cpu资源导致服务器负载过高的解决方法:禁用WP-Cron
编辑wordpress wp-config.php,加入:define(‘DISABLE_WP_CRON’, true);
然后 /root/lnmp restart 重启lnmp
重启之后cpu 占用终于正常,网站负载也减了下来,slow.log 也不再增加新的内容 阅读全文…