本文关键详细介绍了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);

也不知道怎样实际操作,舍弃。

作者 网络

发表回复

您的电子邮箱地址不会被公开。