记一次 Linux 磁盘空间排查
晚上十点收到阿里云的告警短信,说磁盘使用率超过90%。心想不对,这台服务器上没跑什么重负载的东西,怎么突然就满了。
SSH上去,先df -h看整体,确认根分区确实快满了。然后du -sh /* 2>/dev/null | sort -rh | head -10逐层往下找。最后定位到/var/lib/docker/overlay2下面某个容器的日志目录,一个json.log文件占了将近8个G。
原因很简单:Docker默认的日志驱动不做轮转,会无限增长。这个容器跑了快三个月,日志就这么一直在涨,从来没注意过。
解决也简单:临时truncate -s 0清掉日志,然后在docker-compose里加了max-size: 50m和max-file: 3的日志限制。
教训:部署容器的时候,第一件事就是把日志策略配好。等出问题再补救,浪费的时间远多于提前配置的那五分钟。