CentOS + 宝塔服务器偶发 SSH、面板、网站全部无法访问排查记录(PHP-FPM 内存耗尽案例)

一、故障现象

服务器配置:

腾讯云 CVM

2核4G

CentOS 8.5

宝塔面板

PHP 7.2

MySQL

Nginx

故障表现:

网站后台无法访问

宝塔面板无法打开

SSH 无法连接

ping 正常

重启服务器后恢复

典型现象:

网络层正常,但是服务器应用层全部失去响应。

这种情况优先怀疑:

内存耗尽(OOM)

CPU 满载

磁盘 IO 堵塞

连接数耗尽

某个服务异常占满资源

二、排查原因

搜索 OOM
bash 复制代码
grep -Ei "oom|out of memory|killed process" /var/log/messages

说明 Linux 因内存不足杀进程

确认服务器资源情况
bash 复制代码
free -h

查看谁占用内存

bash 复制代码
ps aux --sort=-rss | head -30

能看到很多php-fpm: pool www,总共二十几个,共占用2G多,每个60m~120m不等

而php 配置:

pm.max_children=50,说明有请求还会占用新的内存空间

50*90MB ≈ 4.5G,超过服务器物理内存

检查 PHP-FPM 配置
bash 复制代码
cat /www/server/php/72/etc/php-fpm.conf

pm.max_children = 50

改为

pm.max_children = 20

这样20*90MB ≈ 1.8G,比较安全

查看 PHP 慢请求

可能由于长任务不释放,导致不断启动新php-fpm,导致过多进程占用过多内存,进而溢出,这里开启了php慢日志,超过30秒,会记录

bash 复制代码
cat /www/server/php/72/var/log/slow.log

统计慢请求入口

bash 复制代码
grep "script_filename" /www/server/php/72/var/log/slow.log \
| sort | uniq -c | sort -nr

查看具体文件内容

bash 复制代码
 nl -ba /www/wwwroot/21258_mini/application/api/controller/Base.php | sed -n '35,55p'
修复方案
  1. 调小最大子进程,设置最大请求后重启进程

    bash 复制代码
    vi /www/server/php/72/etc/php-fpm.conf

    pm.max_children = 20

    pm.max_requests = 500

  2. 增加交换空间

    创建2G:

bash 复制代码
dd if=/dev/zero of=/swapfile bs=1M count=2048

chmod 600 /swapfile

mkswap /swapfile

swapon /swapfile

永久启用:

bash 复制代码
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab

检查:

bash 复制代码
free -h

总结

业务接口慢请求导致 PHP-FPM 进程堆积,在无 Swap 的4G服务器上触发资源耗尽,最终导致整台服务器不可用
慢请求 → PHP-FPM堆积 → 内存增长 → OOM
相关推荐
叠层归一研究院14 小时前
AGI 系统(五):多主体 AGI 网络 — 分布式符号边界上的时序差同构传播
分布式·php·agi
学代码的CJY15 小时前
Linux 库制作与原理:静态库、动态库、ELF 与动态链接完全指南
linux·运维·服务器
沸速存储16 小时前
CPU 和 GPU 核心差别在哪?为什么 AI 训练离不开 GPU
服务器·人工智能·科技·嵌入式硬件·电脑
leoZ23116 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino
路由侠内网穿透17 小时前
本地部署企业级快速开发平台芋道管理后台并实现外部访问
运维·服务器·网络·网络协议
basketball61617 小时前
软考中级网络工程师 第4章 无线通信网 备考总结
linux·服务器·网络·网络工程师·软考
yunlaodacom17 小时前
阿里云国际站注册:性能损耗 < 1%!基于 eBPF 的服务器异常预测实战与调优指南
大数据·服务器·阿里云
好评12417 小时前
【Linux】进程信号
linux·运维·服务器
Doraemomo19 小时前
Linux编程-标准IO和系统IO
linux·运维·服务器
qq_4523962319 小时前
第十二篇:《Istio 生产环境最佳实践与排错指南》
云原生·php·istio