新闻详情

新闻详情

首页 / 资讯中心 / 详情

PHP 实战:服务器磁盘突然100%怎么办?从日志清理到存储优化完整排查方案

发布时间:2026/9/30 7:39:45来源:尧图网络
PHP 实战:服务器磁盘突然100%怎么办?从日志清理到存储优化完整排查方案
一、问题背景网站运行正常突然无法写入数据最近维护一个 PHP 订单管理系统运维发现网站还能访问但是上传文件失败订单无法生成。错误日志id8f3k2m No space left on device用户表现idk9m4x7 上传图片 失败 创建订单 失败 后台生成报表 失败服务器状态idp5x8n3 CPU 正常 内存 正常 磁盘 100%二、问题定位发现服务器磁盘空间耗尽查看磁盘df -h结果Filesystem /dev/vda1 Use% 100%说明磁盘已经满了。三、为什么磁盘满会影响PHP很多操作都需要写文件。例如PHP日志PHP错误日志 ↓ 写入磁盘Session用户登录 ↓ 保存Session文件上传文件图片上传 ↓ 保存服务器磁盘满全部失败。四、第一步快速找到占用空间最大的目录查看du -sh /*例如20G /var 5G /home 2G /tmp继续du -sh /var/*发现/var/log 50G五、问题一日志文件无限增长很多 PHP 项目开启错误日志。例如error_log/var/log/php/error.log但是没有限制。几年后error.log 80GB六、解决方案日志切割使用 logrotate。配置/etc/logrotate.d/php内容/var/log/php/*.log { daily rotate 7 compress missingok }含义每天生成新日志。保留7天。旧日志压缩。七、第二步检查PHP错误日志查看tail -100 error.log发现PHP Warning: Undefined variable大量重复。例如代码echo $username;变量不存在。每请求产生一条日志。八、修复代码减少无效日志错误echo $user[name];没有判断。优化echo $user[name] ?? ;减少大量错误日志。九、第三步清理临时文件查看du -sh /tmp/*发现/tmp/cache 30GB原因程序生成缓存没有清理。设置自动清理find /tmp/cache \ -type f \ -mtime 7 \ -delete删除7天前文件。十、第四步上传文件无限增长商城系统用户上传图片。目录/uploads几年后500GB优化图片不要全部放服务器。架构用户上传 ↓ 对象存储 ↓ 返回URL例如OSSCOSS3十一、第五步数据库备份文件占满磁盘常见每天执行mysqldump database backup.sql结果backup1.sql backup2.sql backup3.sql几年几十GB。自动清理find /backup \ -name *.sql \ -mtime 30 \ -delete保留30天。十二、第六步Docker日志占满磁盘如果使用Docker查看docker system df可能发现container logs 100GB限制日志大小docker-composelogging: driver: json-file options: max-size: 100m max-file: 3十三、第七步检查删除文件仍被占用有时候删除文件空间没有释放。查看lsof | grep deleted例如php-fpm error.log (deleted)原因进程仍占用。解决重启服务。systemctl restart php-fpm十四、第八步PHP Session文件过多默认session.save_handlerfiles保存/var/lib/php/session大量用户产生大量小文件。优化方案使用Redis保存Session。配置session.save_handlerredis session.save_pathtcp://127.0.0.1:6379优势减少磁盘压力。十五、第九步缓存文件管理错误/cache 永久保存没有过期机制。设计缓存文件增加时间。例如if( filemtime($file)time()-3600 ){ unlink($file); }超过1小时清理。十六、生产环境磁盘监控不要等100%。设置报警。例如磁盘使用率 80% 提醒 90% 报警监控内容磁盘空间 inode数量 日志大小 临时文件十七、inode耗尽问题有时候空间还有。但是创建文件失败。查看df -i原因大量小文件。例如session cache tmp解决删除小文件。优化存储方式。十八、生产环境常见错误1. 日志不切割结果日志几十GB。2. 上传文件永久保存结果磁盘越来越满。3. 备份无限增长结果备份占满服务器。4. 没有磁盘报警结果发现时已经故障。十九、上线前检查清单日志✅ 开启日志切割✅ 设置保存周期✅ 清理历史日志文件✅ 上传使用对象存储✅ 定期清理缓存✅ 删除无用文件系统✅ 磁盘监控报警✅ inode监控✅ 备份周期管理二十、优化效果优化前日志增长 ↓ 磁盘100% ↓ PHP无法写文件 ↓ 业务失败优化后日志切割 ↓ 自动清理 ↓ 对象存储分离 ↓ 磁盘稳定总结服务器磁盘问题表面看是磁盘满了实际上可能来自日志失控 缓存堆积 上传文件增长 备份无限保存 小文件过多生产环境 PHP 系统必须建立自动清理 容量监控 日志管理 存储优化才能避免因为磁盘问题导致整个网站停止运行。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2026 AI动作捕捉系统市场分析:无标记动捕技术如何推动体育训练与影视动画规模化落地? 2026/9/30 15:54:42

2026 AI动作捕捉系统市场分析:无标记动捕技术如何推动体育训练与影视动画规模化落地?

核心结论:全球AI动作捕捉系统市场正处于无标记技术替代传统光学方案的加速渗透期。无标记动捕依托计算机视觉算法与深度感应相机,在无需物理标记或传感器的条件下实现对目标运动的高精度跟踪与定位,这一技术特性正持续降低体育训练、康复训练…

阅读更多 →
一人公司如何选行业:从宏观分类到个人能力匹配的完整指南 2026/9/30 15:54:42

一人公司如何选行业:从宏观分类到个人能力匹配的完整指南

前几天有个朋友问我:“我一个人做点事,既不想回公司上班,也不想搞合伙,到底做什么行业比较好?”他把抖音上能刷到的赛道都列了一遍——自媒体、电商、做课、私域带货——看完更迷茫了,因为所有看起来热闹的…

阅读更多 →
【Python量化因子实战 #10】因子用了一个月失效了?用滚动 IC 监控稳定性 2026/9/30 15:54:42

【Python量化因子实战 #10】因子用了一个月失效了?用滚动 IC 监控稳定性

动量因子去年很灵,今年就不行了——这不是玄学,是量化里的常态。因子会衰减。本文教你用"滚动 IC"给因子做体检,判断它现在还能不能用。一、为什么因子会失效 A股的市场风格在切换: 2020-2021:抱团蓝筹&…

阅读更多 →
从告警扫描到攻击路径验证:为代码变更建立可审计的安全审查流水线 2026/9/30 15:54:42

从告警扫描到攻击路径验证:为代码变更建立可审计的安全审查流水线

在持续交付环境中,安全扫描很容易陷入两个极端:一端是只跑静态规则,输出大量告警,开发者只能靠经验逐条判断;另一端是把代码、日志和扫描结果直接交给模型,期望它给出“是否存在漏洞”的结论。前者缺少业务…

阅读更多 →
2026年企业级AI大模型API聚合平台终极测评:为什么不再自建网关 2026/9/30 15:54:19

2026年企业级AI大模型API聚合平台终极测评:为什么不再自建网关

2026年AI大模型加速企业数字化转型,基础设施层面的变革步入深水区:企业想同时用上GPT、Claude、Gemini、DeepSeek、Qwen、Llama等主流模型,还要保障网络连通性、统一结算与合规管控,难度不小,API聚合平台因此进入爆发期…

阅读更多 →
Linux目录结构深度解剖:从FHS标准到信创系统变异 2026/9/30 15:54:19

Linux目录结构深度解剖:从FHS标准到信创系统变异

1. 这不是命令手册,而是一张Linux系统的“活体解剖图”你打开终端敲下ls,看到的不只是文件列表;你输入cd /etc,踏进的也不是普通文件夹——那是Linux系统跳动的心脏腔室。我带过三十多个从Windows转过来的运维新人、开发实习生和信…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉