本文关键详细介绍了php-cgi过程cpu负载过高:禁用wordpress计划任务wp-cron.php,必须的盆友能够参照下
一、难题叙述
1、19号手动式升級到wordpress4.1,24号早晨7点看网址php探针,发现系统软件负载过高,类似在1到1.5中间。
2、尽管针对双核处理器,这一值还能够接纳,可是中间负载都仅有0.2上下,而网站访问量又沒有忽然提升许多 ,因此 确定肯定是出难题了。
3、eth 外网地址总流量一切正常,lo 当地总流量提高迅速,reboot系统软件后(中间网络服务器早已平稳运作了632天9钟头25分鐘),一个钟头不上就拥有2GB的总流量。
4、top命令发现php-cgi 占有cpu许多 ,绝大多数時间都会80%到90%中间,cpu time 時间较长。
二、解决方法
1、网页搜索:php cgi cpu寻找文章内容
https://www.jb51.net/article/92975.htm
2、改动php-fpm.conf
request_terminate_timeout 0s 改成30s
request_slowlog_timeout 0s 改成三秒
重启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寻找:
https://www.jb51.net/cms/495321.html
5、因此寻找php-cgi过程占有cpu資源造成 网络服务器负载过高的解决方法:禁用WP-Cron
编写wordpress wp-config.php,添加:define(‘DISABLE_WP_CRON’, true);
随后 /root/lnmp restart 重启lnmp
重启以后cpu 占有总算一切正常,网址负载也减了出来,slow.log 也已不提升新的內容
三、清除很有可能的缘故
1、禁用hyper cache
刚开始感觉很有可能hyper cache形成的缓存太多造成php负载,禁用hyper cache软件后发现负载不但不减,反倒升了,表明:并不是hyper cache的难题且hyper cache能够具有减少php负载的功效。
2、删掉eAccelerator
https://www.jb51.net/article/92978.htm
根据本文提示:vi /usr/local/php/etc/php.ini 删除文件夹结尾Accelerator的那两行配备删除,储存重启lnmp,发现难题依然,因此 也清除了eAccelerator的缘故,以后再再次在php.ini中加上上eAccelerator的配备。
3、file_get_contents的难题
https://www.jb51.net/article/28030.htm
https://www.jb51.net/article/92980.htm
参照上面几篇文章内容,ll /proc/PID/fd 沒有发现出现异常。
yum install strace 安裝(不安裝会提醒不正确:-bash: strace: command not found) 后
strace -p pid,有相近的提醒不正确:poll([{fd=4, events=POLLIN}], 1, 0) = 0 (Timeout)
网页页面不断的闪烁,网络服务器负载剧增。
几篇文章内容中提及的:stream_context_create 设定请求超时時间,技术性很差,彻底不明白要怎样实际操作,因此 也没法往下开展,舍弃。
4、php5.2 和curl的兼容性问题
解决方法:设定curl请求超时時间
curl_setopt($ch, CURLOPT_TIMEOUT, 2);
也不知道怎样实际操作,舍弃。