本文详细介绍了php-cgi过程中的cpu过载:禁用wordpress策划任务wp-cron.php,大家一定要参考一下。
一、难题叙述
1.19号手动升级到wordpress4.1,24号早上7点看网址的php探针,发现系统软件负载过高,类似于1到1.5之间。
2.虽然这个数值对于双核处理器来说是可以接受的,但是中间负载只有0.2左右,网站访问量也没有突然增加很多,所以肯定是有问题的。
3.eth外网地址总流量一切正常,lo本地流量增长较快。重启系统软件后(中间网络服务器已流畅运行632天9小时25分钟),一小时内总流量2GB。
4.top命令发现php-cgi占用了大量的cpu,大部分时间会在80%到90%之间,占用cpu的时间会更长。
二。解决方案
1.网页搜索:phpcgicpu查找文章内容。
https://www.jb51.net/article/92975.htm
2.更改php-fpm.conf
请求终止超时时间0s更改为30s
request_slowlog_timeout0s更改为三秒。
重启PHP-FPM:/usr/local/PHP/sbin/PHP-FPM重启
3.查询slow.log,发现每个统计分析时间点都有以下提醒。
script_filename=/URLpath/WP-cron.PHP
[0xfcaa950]do_action_ref_array()/URLpath/WP-cron.PHP
4.我想这可能与wp-cron.php有关,所以网络搜索:wp-cron.php正在寻找:
https://www.jb51.net/cms/495321.html
5.所以,找到解决php-cgi进程占用cpu资源导致网络服务器过载的方法:禁用WP-Cron。
写WordPresswp-config.php和add:define('disable_WP_cron',true);
然后/root/lnmprestart重新启动lnmp。
重启cpu后一切正常,URL负载也降低了,slow.log也没有推广新内容。
三。清除可能的原因
1.禁用超级缓存。
一开始感觉hypercache形成的缓存太多很有可能会造成php负载。禁用hypercache软件后,我发现负载不仅没有减少,反而增加了,这表明hypercache不是问题所在,hypercache可以降低php负载。
2.删除eAccelerator
https://www.jb51.net/article/92978.htm
按照本文提示:vi/usr/local/php/etc/php.ini删除文件夹末尾的两行加速,保存重启lnmp,发现问题还在,于是EACelerator的原因也被清除。以后再把EACelerator的设备添加到php.ini中。
3.文件获取内容的问题
https://www.jb51.net/article/28030.htm
https://www.jb51.net/article/92980.htm
参考以上文章内容,ll/proc/PID/fd没有发现异常。
安装yumstrace后(不安装会提醒你不正确:-bash:strace:commandnotfound)
Strace-ppid,类似提醒不正确:poll([{FD=4,events=poll}],1,0)=0(超时)
网页不停闪烁,网络服务器负载剧增。
在几篇文章中都有提到:stream_context_create设置请求超时时间,技术性很强。不知道实际怎么 *** 作,所以不能一意孤行,放弃。
4.php5.2和curl之间的兼容性
解决方法:设置curl请求的超时时间。
curl_setopt($ch,CURLOPT_TIMEOUT,2);
不知道如何实际 *** 作,放弃。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)