侧边栏壁纸
博主头像
WinJay博主等级

博观而约取 厚积而薄发

  • 累计撰写 319 篇文章
  • 累计创建 169 个标签
  • 累计收到 1 条评论
隐藏侧边栏

限制docker生成core文件|Docker内部使用ulimit

WinJay
2021-08-23 / 0 评论 / 0 点赞 / 111 阅读 / 1,227 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-12-15,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

问题描述:

最近kubernetes的机器io负载很高,经过查看是4T的磁盘被写满了,经过查看是容器下生成的core文件占用的磁盘比较大,文件里的内容都是说一写磁盘的负载比较高都是一些错误信息,但是对我们生产环境是没有影响的,最总的解决办法是把docker的core给禁用。

方法一:

修改Docker的Service文件,新增 --default-ulimit core=0:0参数

[root@NercAuth 001.mssql]# cat /lib/systemd/system/docker.service
添加13行:ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  --default-ulimit core=0:0

注:–default-ulimit core=0:0 # 禁用容器生成Core文件

image.png

[root@NercAuth 001.mssql]# systemctl daemon-reload 
[root@NercAuth 001.mssql]# systemctl restart docker
[root@NercAuth 001.mssql]# 
#验证下ulimit是否限制成功
[root@NercAuth 001.mssql]# docker exec -it MSSQL2019 bash
root@MSSQL2019:/# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63456
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

image.png

方法二:

在启动运行容器的时候直接进行限制ulimit

docker run -d --ulimit core=0 --name apline apline:latest
docker exec -it apline bash
ulimit -a
...
...
...
...

方法对比

方法一:对整台服务器全局做了限制,以后在此服务器上启动的所有容器都限制了core文件。
方法二:此操作是一次性的,每次启动一个容器都需要单独指定此参数。

0

评论区