linux服务器删除大日志文件磁盘空间仍旧未释放问题排查

chosen1cwp 2020年08月30日 171次浏览

Linux 服务器删除大日志文件磁盘空间仍旧未释放问题排查

查看磁盘利用情况

收到磁盘预警邮件后,查看邮件内容,提示云服务器磁盘利用率已经 大于 90%,估计是Tomcat生产的日志好久没有清理造成的,登录远程Linux服务器后,df -h 先查看了磁盘利用率。

show

删除大的日志文件大约70G之后,再次查看磁盘空间,利用率没变化。神奇了

未释放磁盘空间原因

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用,而我删除的是Tomcat的日志log文件,删除的时候文件应该正在被使用,所以会如此。

解决方法

  • 查询已经被删除但是仍然被应用程序占用的文件列表。

使用 lsof | grep deleted查看,那可真是多了。
show

  • 释放进程

Kill掉相应的Tomcat进程,让OS自动回收磁盘,但是这样做风险很大,不敢下手,所以不能kill进程

所以保险起见,还是停用Tomcat,重启Tomcat服务,介于白天系统不能停止服务,所以晚上尝试。

重启后,df -h 再次查看磁盘占用率情况,已释放!