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找到文章
https://www.jb51.net/article/92975.htm
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找到:
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);
也不知如何操作,放弃。
相关文章
- 下面教你如何在 CyberPanel安装WordPress以及配置伪静态,需要的朋友可以参考下2023-12-27
- 这篇文章主要介绍了wordpress无法安装更新主题插件的解决办法,需要的朋友可以参考下2020-12-27
- 发现几条比较实用的,适合 WordPress 实用的SQL语句。于是就赶紧收集分享出来了,需要的朋友可以参考下2017-09-23
wordpress在安装使用中出现404、403、500及502问题的分析与解决方法
wordpress是很多新手站长搭建个人博客最喜爱的程序,但是最近在使用WordPress的时候遇到了一些问题,所以想着将遇到问题总结分享出来,下面这篇文章主要给大家介绍了关于wo2017-08-11WordPress取消英文标点符号自动替换中文标点符号的优雅方法
这篇文章主要介绍了WordPress取消英文标点符号自动替换中文标点符号的优雅方法,需要的朋友可以参考下2017-04-04- 这篇文章主要给大家介绍了wordpress自定义上传文件类型的方法,如WordPress默认允许上传 .exe 后缀名的可运行文件,那么我们怎么禁止用户在WordPress后台发表文章时上传 .e2016-12-19
- 大家可能发现了当实现了前端用户中心,后台控制面板就失去了作用,那么限制其他用户进入后台控制面板就很有必要了!那么我们要怎么做呢?通过下面这篇文章分享的方法后,只2016-12-19
- 这篇文章主要介绍了WordPress实现回复文章评论后发送邮件通知的功能,涉及wordpress针对评论与邮件的相关操作技巧,需要的朋友可以参考下2016-10-11
- 这篇文章主要介绍了WordPress使用自定义文章类型实现任意模板的方法,可通过自定义文章类型来实现任意模版的使用,具有一定参考借鉴价值,需要的朋友可以参考下2016-10-11
WordPress后台地址被改导致无法登陆后台的简单解决方法
这篇文章主要介绍了WordPress后台地址被改导致无法登陆后台的简单解决方法,简单分析了后台无法登陆的原因与相应的解决方法,涉及针对wordpress配置项的简单修改,需要的朋友2016-10-11
最新评论