公司服务器的一些软件使用了容器技术,比如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. date数据类型的正确格式_说说数据类型 上篇日期
  2. 微软公布Win10正式版功能对比表,哪个版本适合你?
  3. 软件工程个人作业01
  4. java 锁降级 知乎_HotSpot VM重量级锁降级机制的实现原理
  5. SAP屏幕设计器专题:树控件的使用(九)
  6. vue element 表格使用fixed固定列后切换菜单时错位问题
  7. sql中如何统计各种零件的总数量_如何应用GOF设计模式中的构建者模式创建复合对象实例...
  8. 好玩的php函数,几个实用的PHP函数
  9. linux下cat命令详解
  10. Android-Animations的使用大全之二:Frame Animation和其他
  11. LeetCode MySQL 1126. 查询活跃业务
  12. Ethercat解析(十二)之命令行工具的使用
  13. 棋盘问题 POJ - 1321
  14. 【BZOJ2758】Blinker的噩梦,扫描线+splay+链剖
  15. 程序员这样聊天,让女神疯狂追逐你
  16. 一加7pro运动计步功能_系统:一加推送一加7Pro的氢OS9.5.9系统版本更新,继续优化屏幕...
  17. 19-6/24作业: 将一个double类型的小数,按照四舍五入保留两位小数
  18. 多因素方差分析:自由度
  19. 使用latex分割与合成PDF
  20. java二叉树删除节点

热门文章

  1. 科目二 直角转弯 流程记录 LTS
  2. “宝拉”快跑!阿里云发布超高性能云数据库POLARDB
  3. ie不支持css变量,新版Bootstrap 4 不支持IE8 CSS采用rem和em单位
  4. OBS注册与OSC配置
  5. 京东神灯文档:JVM参数GC线程数ParallelGCThreads合理性设置
  6. JAVA初级工程师面试36问(完结)
  7. GT1030 GTX1050 GT705 Pascal Maxwell Fermi系列N卡Monterey 12.5 – Ventura 13.2 开启QE/CI驱动详尽教程
  8. arp欺骗(http)与dns欺骗
  9. shell脚本里变量引用 数组引用 遍历数组
  10. CF1555C 题解