关于一例子cpu100%的处理方法

背景:

一家网站,帝国程序CMS,网站发布内容数据较多,症状是8核心cpu常常都满载

top 查看的情况是 php-cgi 进程满载,判断可能是1)访问量大或者被攻击,2)php代码问题

网站经过CDN,按理说,不应该造成大量的访问,出现问题完全是php代码访问造成,

本来服务器运行的是 spawn-cgi 来启动的php-cgi进程 , 后来改为php-fpm 也仍然是cpu满载,判断问题在php程序,开启 php-fpm 的slow.log 功能,把运行缓慢的php代码,记录起来立刻发现了问题!!!

根据slow.log 的情况,发现是一些更新网页代码,被当作 script 脚本 在网页里面,而那个更新脚本运行缓慢,当大量用户来的时候,造成了cpu满载,经过更换脚本名称,cpu立刻下降到正常水平。

解决方案:

把一些更新操作用linux的定时任务去完成,从而避免了放到网页里面。

发表评论

电子邮件地址不会被公开。 必填项已用*标注