您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 玉树分类信息网,免费分类信息发布

php原因导致cpu100%怎么办

2025/12/12 12:05:59发布31次查看
php原因导致cpu100%的解决办法:1、找出cpu使用率高的进程pid;2、跟踪进程并修改有可疑的php代码;3、配置“php-cgi”的进程数;4、通过监控与自动恢复的脚本保证服务的正常运转即可。
本教程操作环境:windows7系统、php8.1版、dell g3电脑。
php原因导致cpu100%怎么办?
php-fpm进程cpu 100%的原因及解决方案
近有服务器不时出现的cpu使用率超高,内存几乎被吃光,系统甚至自动kill掉一些进程,如sshd,vsftpd等。用top查看,php-cgi进程高挂不下,如下是解决方案:
一、进程跟踪
# top //找出cpu使用率高的进程pid# strace -p pid //跟踪进程# ll /proc/pid/fd //查看该进程在处理哪些文件
将有可疑的php代码修改之,如:file_get_contents没有设置超时时间。
二、内存分配
如果进程跟踪无法找到问题所在,再从系统方面找原因,会不会有可能内存不够用?据说一个较为干净的php-cgi打开大概20m-30m左右的内存,决定于php模块开启多少。
通过pmap指令查看php-cgi进程的内存使用情况
# pmap $(pgrep php-cgi |head -1)
按输出的结果,结合系统的内存大小,配置php-cgi的进程数(max_children)。
三、监控
最后,还可以通过监控与自动恢复的脚本保证服务的正常运转。下面是我用到的一些脚本:
只要一个php-cgi进程占用的内存超过 %1 就把它kill掉
#!/bin/shpids=`ps aux|grep php-cgi|grep -v grep|awk’{if($4>=1)print $2}’`for pid in $pidsdoecho `date +%f….%t`>>/data/logs/phpkill.logecho $pid >> /data/logs/phpkill.logkill -9 $piddone
检测php-fpm进程
#!/bin/bashnetstat -tnlp | grep “php-cgi” >> /dev/null #2&> /data/logs/php_fasle.logif [ "$?" -eq "1" ];then #&& [ `netstat -tnlp | grep 9000 | awk '{ print $4}' | awk -f ":" '{print $2}'` -eq "1" ];then/usr/local/webserver/php/sbin/php-fpm startecho `date +%f….%t` “system memory oom.kill php-cgi. php-fpm service start. ” >> /data/logs/php_monitor.logfi
通过http检测php执行
#!/bin/bashstatus=`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-fpm restartecho `date +%f….%t` “php-fpm service restart” >> /data/logs/php_monitor.logfi
推荐学习:《php视频教程》
以上就是php原因导致cpu100%怎么办的详细内容。
玉树分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product