在 CentOS 系统中,如果发现进程太多(系统卡顿、负载高、连接数暴涨等),可以按下面思路逐步排查和处理。
ps -e | wc -l
或
top
ps -eo pid,ppid,user,comm | awk '{print $3}' | sort | uniq -c | sort -nr
top
# 或
htop # 需安装
常见原因:
pstree -p
或
ps -ef --forest
例如发现 php-fpm 产生大量子进程:
pkill -9 php-fpm
⚠️ 慎用
kill -9 -1(会杀光所有进程)
ulimit -u 1000
(仅对当前 shell 有效)
编辑:
vi /etc/security/limits.conf
示例:
* soft nproc 1024
* hard nproc 2048
worker_processes 2;
worker_connections 1024;
pm = dynamic
pm.max_children = 50
max_connections = 200
crontab -l
ls /etc/cron*
防止脚本重复执行:
flock -n /tmp/lock.lock your_script.sh
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
top
netstat -antup
ls /tmp
crontab -l
重点看:
/tmp 下脚本Ctrl + Alt + Del(软重启)/var/log/messages
/var/log/secure
/var/log/cron
✅ 看进程 → 找父进程
✅ 杀异常进程 → 临时止血
✅ 查原因(服务 / 脚本 / 攻击)
✅ 限制进程数 + 安全防护
如果你愿意,可以把:
top 或 ps aux 前 20 行发给我,我可以帮你精准判断是哪种进程爆炸。