Linux文件句柄未释放
目录
警告
本文最后更新于 2022-07-01,文中内容可能已过时。
摘要
事件起因
今天早晨系统告警磁盘空间不足,因为某个服务一直在刷错误日志,磁盘爆了,我把容器删除重新起了一个。
df -h
后磁盘空间没有释放
du -sh
统计没有占用那么多空间
通过指令:lsof | grep deleted
指令,查看当前系统句柄未释放情况
因为都是容器空间,所以只查看容器进程未释放的文件句柄。
|
|
发现有很多已经不存在的容器空间文件句柄未释放。
问题找到后怎么解决,有两种方法。
1、将当前线程进行重启,关闭线程,从而让句柄释放,释放空间。
2、找到指定的文件句柄,将当前文件句柄的大小设置为空。
第一种方法频繁重启不适合当前业务场景在生产环境不适用,采用第二种方法。
通过lsof | grep deleted
拿到 PID(进程标识符)和 FD(文件描述符,应用程序通过文件描述符识别该文件。)
置空文件内容
|
|
然后查看磁盘使用发现空间恢复了