php原因导致cpu100%如何解决


本篇内容介绍了“php原因导致cpu100%如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! php原因导致cpu100%的解决办法:1、找出CPU使用率高的进程PID;2、跟踪进程并修改有可疑的PHP代码;3、配置“PHP-CGI”的进程数;4、通过监控与自动恢复的脚本保证服务的正常运转即可。PHP-FPM进程CPU 100%的原因及解决方案近有服务器不时出现的CPU使用率超高,内存几乎被吃光,系统甚至自动kill掉一些进程,如sshd,vsftpd等。用top查看,PHP-CGI进程高挂不下,如下是解决方案:一、进程跟踪

#top//找出CPU使用率高的进程PID
#strace-pPID//跟踪进程
#ll/proc/PID/fd//查看该进程在处理哪些文件

将有可疑的PHP代码修改之,如:file_get_contents没有设置超时时间。二、内存分配如果进程跟踪无法找到问题所在,再从系统方面找原因,会不会有可能内存不够用?据说一个较为干净的PHP-CGI打开大概20M-30M左右的内存,决定于PHP模块开启多少。通过pmap指令查看PHP-CGI进程的内存使用情况

#pmap$(pgrepphp-cgi|head-1)

按输出的结果,结合系统的内存大小,配置PHP-CGI的进程数(max_children)。三、监控最后,还可以通过监控与自动恢复的脚本保证服务的正常运转。下面是我用到的一些脚本:只要一个php-cgi进程占用的内存超过 %1 就把它kill掉

#!/bin/sh
PIDS=`psaux|grepphp-cgi|grep-vgrep|awk’{if($4>=1)print$2}’`
forPIDin$PIDS
do
echo`date+%F….%T`>>/data/logs/phpkill.log
echo$PID>>/data/logs/phpkill.log
kill-9$PID
done

检测php-fpm进程

#!/bin/bash
netstat-tnlp|grep“php-cgi”>>/dev/null#2&>/data/logs/php_fasle.log
if["$?"-eq"1"];then#&&[`netstat-tnlp|grep9000|awk'{print$4}'|awk-F":"'{print$2}'`-eq"1"];then
/usr/local/webserver/php/sbin/php-fpmstart
echo`date+%F….%T`“SystemmemoryOOM.Killphp-cgi.php-fpmservicestart.”>>/data/logs/php_monitor.log
fi

通过http检测php执行

#!/bin/bash
status=`curl-s–head“http://127.0.0.1:8080/chk.php”|awk‘/HTTP/{print$2}’`
if[$status!="200"-a$status!="304"];then
/usr/local/webserver/php/sbin/php-fpmrestart
echo`date+%F….%T`“php-fpmservicerestart”>>/data/logs/php_monitor.log
fi

“php原因导致cpu100%如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百免费云主机域名云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: JS怎么实现动态插入并立即执行回调函数

这篇文章主要讲解了“JS怎么实现动态插入并立即执行回调函数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JS怎么实现动态插入并立即执行回调函数”吧!具体代码如下:动态插入js文件在提高页面加载速度和跨域问题上有…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 02/20 21:58
Next 02/20 21:58

相关推荐