CPU 100%,PHP-FPM日志显示 child xxx exited with code 0 after 7892.500353 seconds from start
2022/3/3 17:44:59
本文主要是介绍CPU 100%,PHP-FPM日志显示 child xxx exited with code 0 after 7892.500353 seconds from start,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
服务器出现CPU占用100%,PHP-FPM日志不断显示
child xxx exited on signal 15 (SIGTERM) after xxx seconds from start
child xxx started
child xxx exited with code 0 after 0 seconds from start
说明PHP-FPM进程在不断创建子进程,但一创建就死掉了
还会有提示
seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
说明启动的子进程数量已经到底最大值
但通过 ps -ef |grep "php-fpm"|grep "pool"|wc -l命令统计php-fpm进程数量,却是0个,说明进程确实都是刚创建就死掉了,而且是瞬时创建的子进程数量都超过了最大值,只不过立马有死掉了
因为不停的创建进程,导致了CPU耗尽
使用strace在服务器正常的时候开始跟踪php-fpm进程,并记录时间戳
screen -S strace
strace -s 1024 -tt -T -f -o strace.log -p 某个php-fpm子进程的pid
机器死掉后重启,查看阿里云系统监控,找到CPU100%的开始时间,查看strace.log,使用行号定位到CPU100%的那段时间
less -N +行号 strace.log
发现有Too many open files的错误,说明是系统的打开文件描述符已经超过上限,PHP-FPM进程不断重启就是因为没有文件描述符可用导致的
ulimit -a #查看各类用户进程限制,发现最大打开文件描述符数量是65535
...
open files (-n) 65535
max user processes (-u) 65535
...
lsof | wc -l #查看当前已打开文件描述符数量,发现已经快到最大值了
589234
lsof |awk '{print $1}' |sort |uniq -c |sort -nr |head -n10 #查看占用文件描述符最多的10个进程
17821 crond
16784 sendmail
16765 maildrop
...
发现是crond和crond相关的邮件发送进程占用了大量文件描述符
查看邮件日志
less /var/log/maillog
发现大量报错
postfix/postdrop[16261]: warning: mail_queue_enter: create file maildrop/756739.16261: No such file or directory
说明邮件无法正常发送,postfix服务出现了邮件投递错误
systemctl status postfix #检查postfix服务状态,发现服务没有启动,且是禁用状态
systemctl start postfix #启动服务
lsof | wc -l #检查打开文件描述符数量,发现已经下降,问题解决
systemctl enable postfix #最后设置postfix自动启动
这篇关于CPU 100%,PHP-FPM日志显示 child xxx exited with code 0 after 7892.500353 seconds from start的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享