【一次容器长时间运行引发的磁盘容量告警及解决方法】

一、问题背景及描述
由于需要做一些性能测试,故在虚拟机上批量运行了100台容器,然后对这100台容器服务不停的发数据,并由其转发至测试服务。
但是每当测试一段时间后,机器硬盘容量就达到告警上限,查看后系统硬盘使用率达到85%以上

二、排查过程

1、首先在根目录下定位占用最大的目录:
cd /;du -sh *
2、依次在目录下使用du -sh * 命令,最终发现是/var/lib/docker/containers里面每一个容器对应的目录占用过多导致
3、进入容器查看每个容器实际使用的量,以确定容器内是否有文件不断增长
docker exec -it 容器名称 bash
cd /;du -sh # 容器的总占用大小
结果发现容器使用量并不多,且并没有持续增长稳健
4、在容器宿主机执行以下命令后,确定容器内实际占用容量实际并不多
docker system df
5、继续探索/var/lib/docker/containers/容器名/下各文件大小,发现“容器id-json.log”文件比较大

6、打开文件后发现,该文件是容器日志
tailf -n 300 filename

三、解决方法
1、设置全局容器日志大小:
打开/etc/docker/daemon.json(若不存在请直接新建),并添加配置参数log-dirver和log-opts
其中log-dirver指文件格式,log-opts指文件相关的配置,下图配置表示每个日志文件最大为10m,最多保留3个日志文件(由于本人容器较多,故参数设置较小)

重启docker服务生效:
systemctl daemon-reload
systemctl restart docker
注意,此参数为docker全局配置,如果机器上存在他人的容器,建议只对自己管理的容器进行日志配置.
由于本人是使用的docker-compose来管理的容器,故介绍第二种方法
2、使用docker-compose对指定容器进行日志配置,如下红色框中,指此容器最多保留10m的日志

配置完成后重启容器
docker-compose restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值