php-cgi进程cpu负载过高:禁用wordpress定时任务wp-cron.php

php-cgi进程cpu负载过高:禁用wordpress定时任务wp-cron.php,第1张

概述这篇文章主要介绍了php-cgi进程cpu负载过高:禁用wordpress定时任务wp-cron.php,需要的朋友可以参考下 一、问题描述

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

2、修改PHP-fpm.conf

重启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

5、于是找到php-cgi进程占用cpu资源导致服务器负载过高的解决方法:禁用WP-Cron

编辑wordpress wp-config.php,加入:

然后 /root/lnmp restart 重启lnmp

重启之后cpu 占用终于正常,网站负载也减了下来,slow.log 也不再增加新的内容

三、排除可能的原因

1、禁用hyper cache

开始觉得可能hyper cache生成的缓存文件过多引起PHP负载,禁用hyper cache插件后发现负载非但不降,反而升了,说明:不是hyper cache的问题且hyper cache可以起到降低PHP负载的作用。

2、删除eAccelerator

依据这篇文章提醒:vi /usr/local/PHP/etc/PHP.ini 删除文件末尾Accelerator的那几行配置删掉,保存重启lnmp,发现问题依旧,所以也排除了eAccelerator的原因,之后再重新在PHP.ini中添加上eAccelerator的配置。

3、file_get_contents的问题

参考上边两篇文章,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超时时间

也不知如何 *** 作,放弃。

总结

以上是内存溢出为你收集整理的php-cgi进程cpu负载过高:禁用wordpress定时任务wp-cron.php全部内容,希望文章能够帮你解决php-cgi进程cpu负载过高:禁用wordpress定时任务wp-cron.php所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/1034038.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存