处理podman的overlay-containers中ctr.log日志文件过大的问题

29 篇文章 2 订阅
11 篇文章 1 订阅
文章讲述了公司服务器上Podman和Docker容器的overlay-containers目录占用大量磁盘空间,特别是日志文件ctr.log。通过du命令分析,找到了占用212G空间的日志文件并清空,解决了Gitlab容器磁盘空间问题,而这个问题无法通过设置log-optmax-size参数预防,因为容器已运行较长时间。
摘要由CSDN通过智能技术生成

公司服务器的一些软件使用了容器技术,比如Podman、Docker,从架设到现在已经稳定运行了1年半了,半年前发现磁盘占用比较大,/var/lib/containers占用了260G的磁盘空间,重启了一下容器,磁盘空间降下来了不少,同时由于这个目录下存的都是容器的磁盘文件,不能乱动,所以也就没管它。

昨天处理了Jira所在服务器由于磁盘空间不足导致的问题,参见JIRA维护记——使用原实例位置恢复数据,担心这个服务器在某个时间也出现磁盘空间不足导致问题,所以今天来仔细查一下。

/var/lib/containers/storage目录使用du -sh * | sort -hr | head -5命令查看此目录下的占用最多的前5个目录:

$ du -sh * | sort -hr | head -5
212G    overlay-containers
28G     overlay
2.4G    volumes
24M     overlay-layers
1020K   libpod

overlay-containers占用高达212G,该分区总共才295G。

du -sh *只能统计当前目录,不能统计子目录,为了更快定位目录,使用du -h -d 10命令列出10层子目录内的信息,子目录层数可以根据情况调整。完整命令du -h -d 10 | sort -hr | head -10

$ du -h -d 10 | sort -hr | head -10
243G    .
212G    ./overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658/userdata
212G    ./overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658
212G    ./overlay-containers
28G     ./overlay
6.8G    ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800
3.8G    ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800/merged
3.1G    ./overlay/983650496b3437c000dc399af5b842638b6feec7d1bf6f6a662e11c542ca1800/diff
2.6G    ./overlay/58f71749e43e3f55e6665e8bed8f97763110b52e8bb67dc97557310e1314d4cf/merged
2.6G    ./overlay/58f71749e43e3f55e6665e8bed8f97763110b52e8bb67dc97557310e1314d4cf

可以看到是某个容器的数据占用了212G,直接进入/var/lib/containers/storage/overlay-containers/0836bd03d25f8080ef8dc28fc17326eec556ac936273f5933d92a32a09d65658/userdata,使用ll -h查看:

$ ll -h
total 212G
drwx------ 6 root root 4.0K Jun  8 10:12 ./
drwx------ 3 root root 4.0K Dec  2  2021 ../
drwxr-xr-x 2 root root 4.0K Dec  2  2021 artifacts/
srwx------ 1 root root    0 Apr  5 15:35 attach=
-rw------- 1 root root  24K Dec  2  2021 buildah.json
-rw-r--r-- 1 root root  32K Apr  5 15:35 config.json
prw-r--r-- 1 root root    0 Apr  5 15:35 ctl|
-rw------- 1 root root 212G Jun  8 10:13 ctr.log
drwxr-xr-x 3 root root 4.0K Dec  8  2021 d811302d8e3f1e272b8213e07b4e2a7da260fba273216e75eafcc44dff3aab2e/
drw-r--r-- 2 root root 4.0K Dec  2  2021 secrets/
drwxrwxrwt 3 root root   80 Apr  5 15:35 shm/
prw-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,没发现异常。

参考:
记一次 Docker overlay 占用磁盘 100% 的问题

### 回答1: openseadragon-fabricjs-overlay.js是一个用于在OpenSeadragon图像查看器添加矩形、圆形、直线等标记的插件。它结合了OpenSeadragon和Fabric.js库的功能,为用户提供了绘制和编辑标记的能力。 通过openseadragon-fabricjs-overlay.js,我们可以在OpenSeadragon图像查看器上创建矩形、圆形和直线等形状作为标记。我们可以通过指定形状的位置、大小、颜色等属性来自定义标记的外观。同时,我们还可以添加标签或文字等额外信息,以便进一步描述标记。 这个插件不仅支持创建新的标记,还可以对已存在的标记进行编辑和删除。用户可以通过拖拽、缩放和旋转等交互方式对标记进行调整。这使得用户可以自由地在图像上添加、修改和删除标记,以满足不同的需求。 openseadragon-fabricjs-overlay.js是一个强大而灵活的插件,为用户提供了丰富的标记选择和操作功能。对于需要在OpenSeadragon图像查看器进行标记的应用场景,它是一个非常有价值的工具。无论是学术研究、地理信息系统或其他需要对图像进行标注和分析的领域,openseadragon-fabricjs-overlay.js都可以方便地加入到现有项目,提供更加丰富的交互和展示效果。 ### 回答2: openseadragon-fabricjs-overlay.js 是一个用于在 OpenSeadragon 图像查看器进行标记的插件。它基于 Fabric.js 库,提供了在图像上绘制矩形、圆形和直线等标记的功能。 使用该插件,我们可以在图像上创建矩形、圆形和直线标记。首先,我们需要创建一个 Fabric.js canvas,将其添加到 OpenSeadragon 图像查看器。然后,我们可以使用该插件提供的方法,例如 createRect、createCircle 和 createLine 来绘制标记。 例如,要创建一个矩形标记,我们可以使用 createRect 方法,并指定矩形的位置、大小和样式等参数。类似地,我们可以使用 createCircle 方法创建圆形标记,使用 createLine 方法创建直线标记。 绘制完成后,我们可以通过修改标记的属性来实现进一步的交互。例如,我们可以通过调整标记的位置、大小或颜色来修改标记的外观。我们还可以添加事件处理程序,使得标记可以响应用户的交互,例如点击或拖动。 总之,openseadragon-fabricjs-overlay.js 是一个方便的插件,它使我们可以在 OpenSeadragon 图像查看器添加矩形、圆形、直线等标记。使用该插件,我们可以轻松地进行图像标注、注释或其他形式的交互,从而丰富用户的图像浏览体验。 ### 回答3: openseadragon-fabricjs-overlay.js是一个库,用于在OpenSeadragon添加矩形、圆形、直线等标记。它基于fabric.js库,结合OpenSeadragon的功能,使得用户可以在OpenSeadragon图像上创建和编辑各种形状。 该库使用起来非常简便,只需要在OpenSeadragon实例导入openseadragon-fabricjs-overlay.js,并设置所需的标记。例如,如果我们想要在OpenSeadragon图像添加一个矩形,我们可以使用如下代码: ```javascript var viewer = OpenSeadragon({ // OpenSeadragon的配置选项 ... }); var overlay = viewer.fabricjsOverlay({ // openseadragon-fabricjs-overlay.js的配置选项 ... }); var rect = new fabric.Rect({ top: 100, left: 100, width: 200, height: 150, fill: 'red', opacity: 0.5 }); overlay.fabricCanvas().add(rect); ``` 通过以上代码,我们就在OpenSeadragon图像上成功添加了一个红色的半透明矩形。同样,我们也可以使用相似的方式添加圆形、直线等形状,只需调整相应的配置和参数即可。 openseadragon-fabricjs-overlay.js提供了丰富的功能,可以自定义标记的样式、位置和交互行为。我们还可以通过该库实现标记的编辑和移动等操作,使得用户可以根据需要在OpenSeadragon图像添加各种标记,帮助用户更好地理解和分析图像内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值