处理podman的overlay-containers中ctr.log日志文件过大的问题
公司服务器的一些软件使用了容器技术,比如Podman、Docker,从架设到现在已经稳定运行了1年半了,半年前发现磁盘占用比较大,/var/lib/containers
占用了260G的磁盘空间,重启了一下容器,磁盘空间降下来了不少,同时由于这个目录下存的都是容器的磁盘文件,不能乱动,所以也就没管它。
昨天处理了Jira所在服务器由于磁盘空间不足导致的问题,参见 JIRA维护记——使用原实例位置恢复数据,担心这个服务器在某个时间也出现磁盘空间不足导致问题,所以今天来仔细查一下。
在/var/lib/containers/storage
目录使用du -sh * | sort -hr | head -5
命令查看此目录下的占用最多的前5个目录:
1$ du -sh * | sort -hr | head -5
2212G overlay-containers
328G overlay
42.4G volumes
524M overlay-layers
61020K libpod
overlay-containers
占用高达212G,该分区总共才295G。
du -sh *
只能统计当前目录,不能统计子目录,为了更快定位目录,使用du -h -d 10
命令列出10层子目录内的信息,子目录层数可以根据情况调整。完整命令du -h -d 10 | sort -hr | head -10
:
1$ du -h -d 10 | sort -hr | head -10
2243G .
3212G ./overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658/userdata
4212G ./overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658
5212G ./overlay-containers
628G ./overlay
76.8G ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800
83.8G ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800/merged
93.1G ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800/diff
102.6G ./overlay/58f71749e43e3f55e6665e8bed8f97763110b52e8bb67dc97557310e1314d4cf/merged
112.6G ./overlay/58f71749e43e3f55e6665e8bed8f97763110b52e8bb67dc97557310e1314d4cf
可以看到是某个容器的数据占用了212G,直接进入/var/lib/containers/storage/overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658/userdata
,使用ll -h
查看:
1$ ll -h
2total 212G
3drwx------ 6 root root 4.0K Jun 8 10:12 ./
4drwx------ 3 root root 4.0K Dec 2 2021 ../
5drwxr-xr-x 2 root root 4.0K Dec 2 2021 artifacts/
6srwx------ 1 root root 0 Apr 5 15:35 attach=
7-rw------- 1 root root 24K Dec 2 2021 buildah.json
8-rw-r--r-- 1 root root 32K Apr 5 15:35 config.json
9prw-r--r-- 1 root root 0 Apr 5 15:35 ctl|
10-rw------- 1 root root 212G Jun 8 10:13 ctr.log
11drwxr-xr-x 3 root root 4.0K Dec 8 2021 d811302d8e3f1e272b8213e07b4e2a7da260fba273216e75eafcc44dff3aab2e/
12drw-r--r-- 2 root root 4.0K Dec 2 2021 secrets/
13drwxrwxrwt 3 root root 80 Apr 5 15:35 shm/
14prw-r--r-- 1 root root 0 Apr 5 15:35 winsz|
发现是一个日志文件ctr.log
,占用高达212G。其实可以使用du -ah -d 10
直接列出10层子目录内的所有文件和目录的大小,完整命令:du -ah -d 10 | sort -hr | head -30
,可以直接找出最大的30个文件和目录。
网上查了一些资料:
Podman log file max size limit not working
[Question] Is there a way to limit the size of the logs?
这些基本上都是在创建容器时添加参数--log-opt max-size=限制大小
,但是我的是容器已经运行很久了,不能使用这种方法。
笔者使用了一种简单粗暴的方法echo "" > ctr.log
来解决,立马降下来了,经查是Gitlab所在容器,经过测试Gitlab,没发现异常。
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2023/2023-06-08-处理podman的overlay-containers中ctr.log日志文件过大的问题/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。