PHP日志写满磁盘后接口为什么异常

最近处理一个 PHP 项目时遇到一个挺隐蔽的问题:后台代码没有改动,数据库也能正常连接,但接口开始偶发 500,上传文件失败,部分页面甚至直接打不开。刚开始一直在查 PHP-FPM 和 Nginx 配置,最后登录服务器执行 df -h 才发现,网站所在磁盘已经被日志文件占满了。

继续排查发现,项目为了方便调试,把接口请求参数、第三方返回内容和异常信息全部写进了同一个日志文件。平时一天只有几十兆没什么感觉,后来接口调用量增加,再加上某个失败任务不断重试,日志每天增长几个 G,最终把磁盘空间全部吃完。

磁盘满以后,影响的不只是"不能继续写日志"。PHP Session、缓存文件、上传临时文件、数据库临时数据都可能因为无法写入而出问题,所以表面看到的报错会非常杂,很容易误判成程序突然坏了。

后来把日志按日期拆分,只保留固定天数,同时增加定时清理和磁盘空间监控。高频接口也不再记录完整请求,只保留必要字段和异常内容。

现在遇到服务器突然出现一批没有明显关联的异常,我通常都会顺手检查一次磁盘。很多时候代码没有问题,只是服务器已经没有空间继续正常工作了。

#PHP开发 #服务器运维 #日志管理 #接口排查

相关推荐
重生之小比特1 小时前
【Java SE】程序逻辑控制
java·开发语言·python
小灰灰搞电子1 小时前
Python 函数参数分隔符 *:Keyword-Only Arguments 原理与实践
开发语言·python
染的人1 小时前
Java 10x15cm面单PDF转换A4格式PDF
java·开发语言·pdf
光电笑映1 小时前
Linux 线程同步与互斥:锁的本质、条件变量与信号量的底层原理
linux·运维·服务器·开发语言·c++
Json____1 小时前
从零构建在线拍卖系统:Java 全栈开发实践
java·开发语言·管理系统·it学习·wwwoop.com
2601_966949651 小时前
批量 K 线不只是提速:因子研究中的数据质量、复权与回测偏差
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
matlab代码1 小时前
基于matlab水果识别系统(西红柿、香蕉、梨、青椒)【源码64期】
开发语言·matlab
王的宝库1 小时前
Gin + GORM
开发语言·golang·gin
零基础的修炼1 小时前
CUDA知识汇总
开发语言·c++·编辑器