磁盘利用率持续过高,清除日志文件后空间不释放问题排查

一、问题描述:

    1.线上应用写大量日志,收到磁盘利用率过高的告警

    2.删除大日志文件,仍然持续告警

二、根本原因:

在linux服务器上,rm -r大的日志文件后,如果使用该文件的进程没有关闭,是不会真实的释放磁盘空间的

三、排查过程

1.df -h命令查看当前服务器磁盘使用率情况,发现被使用了50G的空间,使用率搞到89%

磁盘利用率持续过高,清除日志文件后空间不释放问题排查

2.查看日志文件目录下占用的总磁盘大小,发现只占用了20M的磁盘空间,并没有50G的空间大小

磁盘利用率持续过高,清除日志文件后空间不释放问题排查

3.50G的空间到底去哪里了?

lsof |grep deleted 命令进行查看,发现有很多50M左右被删除了的日志文件,算了一下正好就是被使用了的50G

磁盘利用率持续过高,清除日志文件后空间不释放问题排查

四、解决办法

 1.重启应用,删掉进程,让链接断开,os自动清理被deleted的日志文件---这种方式需要重启应用,一般在紧急情况下使用

  2.正确的做法应该是,日志文件定期转储,或软连到云盘上采用异步日志框架输出。--推荐做法