公司服务器的一些软件使用了容器技术,比如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% 的问题

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

  1. Android中对Log日志文件的分析

    Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...

  2. 解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题

    解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 参考文章: (1)解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题 (2)http ...

  3. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...

  4. linux日志手机,通过 shell 脚本 自动发送 log日志 文件内容 到手机邮箱

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 需要用到 mail 命令 如果你的系统中没有安装需要执行 (yum install -y mail sendmail) 安装 sendmail 是因为需要 ...

  5. MySQL数据库中常见的日志文件汇总!

    一个优秀的Java后端开发工程师一定要掌握MySQL数据库,而日志文件记录了影响MySQL数据库的各种类型活动,因此也成为其必须要掌握的知识.今天千锋ava培训小编就给大家介绍MySQL数据库中常见的 ...

  6. codeigniter_如何在浏览器中查看CodeIgniter日志文件

    codeigniter by Seun Matt 通过Seun Matt 如何在浏览器中查看CodeIgniter日志文件 (How to View CodeIgniter Log Files in ...

  7. log4j.properties配置与将异常输出到Log日志文件实例

    将异常输出到 log日志文件 实际项目中的使用: <dependencies><dependency><groupId>org.slf4j</groupId& ...

  8. 什么是SQL Server事务日志中的虚拟日志文件?

    什么是SQL Server事务日志文件? (What is a SQL Server transaction log file?) SQL Server事务日志文件是每个SQL Server数据库的组 ...

  9. mac apache 日志_Mac OS X中的Apache日志文件并进行分析

    mac apache 日志 In last article, we saw how to install Apache on Mac OS X, today we will learn some ba ...

最新文章

  1. 周志华、宋继强谈如何培养高端AI人才,以及深度学习的局限性和未来
  2. ubuntu 拷贝文件
  3. 忙了一上午终于把形状特征搞定了啊
  4. linux php 如何上传webshell,linux+apache+php的一次拿webshell的心得
  5. SpringMVC_04 拦截器 【拦截器的编程步骤】【session复习?】
  6. 获取两个时间之间的间隔_花了两天,终于把 Python 的时间转化给整明白了(超多图解)...
  7. cell数组变为字符串_字符串匹配 ---- BM 算法原理
  8. linux显示 cron 服务是否正在运行_通过Linux系统自带日志监控系统安全
  9. python简明教程3.0_Python3简明教程四
  10. Chart控件,chart、Series、ChartArea曲线图绘制的重要属性介绍(Windows窗体)
  11. Max Script|控制器-位置约束_path
  12. getinfo()java,Java Provider getInfo()用法及代碼示例
  13. 项目绩效考核管理有何方法?这7大考核方案你都知道吗?
  14. 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显【组图】...
  15. Internet 选项在哪
  16. 使用u盘如何装linux系统教程视频教程,如何使用u盘安装linux系统
  17. 重新发现Oracle太美之root.sh
  18. 基于SOA的设备智能维护系统架构设计及实现
  19. 深圳入户体检报告查询
  20. PLC通讯实现-C#实现三菱PLC通讯(三)

热门文章

  1. 运行时错误1004,应用程序定义或对象定义错误
  2. Django短信接入
  3. 应用支持向量机(SVM)实现图像分类——Python
  4. 果汁机霍尔开关 MH251(原装正版)+双节升压充电 远翔FP6291(原装正版)
  5. 个人感悟——第一次记录
  6. ​风暴英雄神灯 v1.7 官方版
  7. python封装exe可执行文件后屏蔽去除cmd黑色命令框解决方案
  8. 微博发力视频号还有机会吗?
  9. tess_two Android图片文字识别
  10. 如何找一张相似的图片---高手请绕过,适合初学者