背景
服务器的docker containers文件夹每天都增加1GB左右,后来发现是错误的打开了查询的query log,导致log增长至57GB. 尝试rm删除该log文件,然后用du -hs查看docker目录占用磁盘大小已经从58GB降至1GB, 但是当用df查看磁盘空间时发现磁盘占用并没有下降,后来经过调查发现该文件因为被container的进程占用并没有真正删除掉。
解决方法
- 找出占用该文件的进程ID
lsof | grep deleted
dockerd 11916 root 14r REG 253,16 0 6291512 /data/docker/containers/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204-json.log (deleted)
- 切换至进程目录
cd /proc/${进程ID}/fd
- 找到删除文件的File Descriptor
ls -l |grep deleted
lr-x------ 1 root root 64 May 7 07:56 14 -> /data/docker/containers/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204/77f1c4972d472a366427dbace80c5960859553781b7ea47b7402c03991316204-json.log (deleted)
- 14为File Descriptor
> 14
- 运行df查看磁盘情况
网友评论