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

所属分类: CMS教程 / WordPress 阅读数: 1695
收藏 0 赞 0 分享

一、问题描述

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);

也不知如何操作,放弃。

更多精彩内容其他人还在看

wordpress 为主题添加AJAX提交评论功能的php代码

前几天,为了提高评论体验,为了减轻服务器负担,我为主题添加了AJAX提交评论功能,现在分享一下方法。
收藏 0 赞 0 分享

wordpress 优化指南

wordpress毫无疑问是一个优秀的博客系统,其最吸引人的一个特点就是有大量的外观主题(theme)可以满足个性化的博客展示需求。
收藏 0 赞 0 分享

wordpress 显示文章日期的方法

WordPress的模板非常灵活,一个优秀的模板所实现的功能往往超出你的想象。这篇文章说说在WordPress里调用文章的发布日期。
收藏 0 赞 0 分享

wordpress 博客优化历程(速度)

自从换了域名,换了主题以后,我一直努力令博客的浏览体验更加好,但因此也挂载了大量的JS文件,页面的载入速度一度变得非常缓慢。于是优化就迫在眉睫了。
收藏 0 赞 0 分享

wordpress 自动在正文内容后添加内容

很多时候,你都需要在文章内容后面添加一些信息,例如订阅,文章分享,收藏和Creative Commons协议声明等。一般情况下,你可以直接编辑主题的single.php文件添加代码来达到目的。
收藏 0 赞 0 分享

开发者应该留意的WordPress2.9新功能小结

WordPress是一款成熟的开源CMS平台,新推出的2.9版本依然保持了以往良好的口碑。这篇文章从WordPress 2.9的codex文档里摘录出几个开发者应该留意的功能进行简析。
收藏 0 赞 0 分享

允许 WordPress 上传任意文件的方法

从 WP 2.8.5 开始文件上传使用预定义的文件扩展名列表过滤,管理员也不例外。
收藏 0 赞 0 分享

WordPress 插件直接将服务器文件导入媒体库

WordPress 插件 直接将服务器文件导入媒体库
收藏 0 赞 0 分享

WordPress博客SEO更加完美的6个技巧

wordpress在搜索引擎优化方面做的也十分不错,在搜索引擎优化方面它基本上给我们解决了80%左右的问题,但余下的20%左右的SEO工作,还是需要人工要去做的,而且也是非常有必要的,怎么才能做好这余下的20%左右的工作呢?
收藏 0 赞 0 分享

WordPress 图片用单独域名储存方法

Yslow 提高网站加载速度里有这么一条:Used Cookie Free Domains , 大意是浏览器会对作用域内每个加载的对象传递 Cookie,在加载图像或者JS、CSS的时候最好用 Cookie-free 域名。如果没有多余的域名可以用一个子域实现,但是要设置 Coo
收藏 0 赞 0 分享
查看更多