• 欢迎访问爱玩吧
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏爱玩吧

【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程

建站资源 aiwanyule 8年前 (2016-05-10) 已收录

由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程

【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
查看top,命令结果如下: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
检查过程中经常出现2个高CPU的PHP进程,但是截这张图的时候只有一个。 
 
再来看下php-fpm的配置: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
在这里发现了一个坑死人不偿命的配置,PHP进程最高只能有2个(截图的时候已经被我修改为了20,修改之前是2),所以当这两个PHP进程都出问题的时候,再就没有PHP进程干活了,于是网站就打不开了。 
 
那么来看看PHP进程到底发生了什么问题: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
PHP进程进入到了死循环,而且这个错误信息是由于网络连接导致的。 
 
再来看看PHP到底在连接哪台主机: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
可以看到云主机上的PHP进程正在请求220.181.136.41的80端口。 
 
再来看看这个IP到底是哪路神仙: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
可以发现,这是sinaapp云平台的IP。 
 
于是到网站根目录里grep查找sinaapp,找到了这个程序: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
来看看addon.sinaapp.com的IP: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
 
看看这个地址是干什么的: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
跟客户确认: 
【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程 
至此问题已经查清,是由于这个验证插件在addon.sinaapp.com上的接口没有正常运行,导致的本地PHP出错并进入死循环。 
 
对PHP开发者的一点提示:在php5.2.x版本中使用curl方式抓取网络内容超时会导致CPU飙升,但是在5.3+版本中已经修复了这个问题,抓取超时对CPU几乎没有影响。 
 
PHP抓取远程内容最好的方式是curl,不过很多程序可能是出于兼容性的考虑,使用了fsockopen方式来抓取远程内容(curl需要模块支持,虽然大多数环境都已经安装,但不排除少量的没有安装,fsockopen则是PHP内置的函数)。fsockopen超时时在不同PHP版本中的CPU消耗没有测试过,有兴趣的可以研究下。 
 
原创文章,转载请以超链接方式注明出处:http://www.yundaiwei.com/post/269.html  


爱玩吧 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【云主机】由Discuz论坛插件导致阿里云ECS云主机CPU 100%的解决过程
喜欢 (0)