磁盘满了,怎么在几分钟内找到元凶
从大到小逐层逼近,不要一上来就全盘扫描。
先看哪一层满
df -h 先确认是哪个挂载点满了。有些系统上日志和业务数据不在同一分区,先分清这一点能省很多时间。
再逐层逼近
不要对整个根目录跑一次全量统计,机器上文件多的时候这会跑很久并且把 IO 打满。正确做法是从可能的位置开始,逐层向下,每一层只看一层深度。
日志目录、临时目录、以及数据库文件所在的目录,通常占据了大部分空间。
常见成因
已删除但仍被进程占用的文件不会释放空间,这类情况用 lsof 找被删除的大文件。另一种是日志没有轮转,一直增长。
顺手做的两件事
给日志加上轮转和大小上限;把业务数据和系统盘分开放。这两件事做过之后,同类问题基本不会再来。