第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何在Docker內(nèi)部使用ulimit——如何在docker內(nèi)部生成core

標(biāo)簽:
Docker

Ulimit

在linux里ulimit命令可以对shell生成的进程的资源进行限制。

常用的ulimit限制

  • 打开文件句柄数

  • core文件大小

  • 设置进程能够消耗的虚拟内存

  • 设置用户能够打开的进程数目

不太常用的ulimit限制

设置数据段的最大值.单位:kbytes
设置创建文件的最大值.单位:blocks
设置在内存中锁定进程的最大值.单位:kbytes
设置可以使用的常驻内存的最大值.单位:kbytes
设置内核可以同时打开的文件描述符的最大值.单位:n
设置管道缓冲区的最大值.单位:kbytes
设置堆栈的最大值.单位:kbytes
设置CPU使用时间的最大上限.单位:seconds

ulimit设置限制的两条水线

ulimit设置限制的时候会设置两条线soft和hard线,当资源到达了soft线那么只是告警,如果达到了hard线那么内核就强制限制了。

在docker里使用ulimit限制

从上面小节中可以看到linux系统可以通过配置ulimit对很多资源进行限制。在docker内部如何使用ulimt这个工具便利性呢。

在dockerd中为所有容器配置默认的ulimit

  • 在/etc/docker/daemon.json里通过

“ulimit”:ulimit-resource=M:N 对所有容器默认某个资源进行限制。

表2-1

上表中M为soft水线,N为hard水线。如果“=”右边只有一个那么同时设置soft水线=hard水线

  • 在dockerd启动参数中设置
    这种方式是指通过修改docker.service文件或者直接命令行启动dockerd的方式

--default-ulimit unlimit-resources=M:N

表2-2

表2-2中的M和N和表2-1中的同义

在docker run时为某个容器设置ulimit

除了在dockerd里设置容器的默认ulimit值,还可以为某个容器指定一个的ulimit值。这借助在docker run时带参数

--ulimit ulimit-resources=M:N

表2-3
表2-3中的M和N和表2-1中同意义

docker中能够设置的ulimit参数

常用的docker ulimit设置项

参数意义例子
nofileshell进程打开文件数目docker run --ulimit nofile=20
core进程生成core文件的尺寸docker run --ulimit core =-1 //开启进程core
nprocshell能打开的进程多少Na
fsize进程写文件的最大尺寸na

其他docker ulimit设置项

参数意义例子
cpuulimit cpu 限制进程能够使用的cpu资源,单位为s。当达到soft线后触发SIGXCPU,默认为杀死进程(可以忽略此信号)。达到hard线后,发送SIGKILLna
dataulimit datana
locksulimit locksna
memlockulimit memlockna
msgqueueulimit msgqueuena
Niceulimit nicena
rssulimit rssna
rtprioulimit rtpriona
rttimeUlimit rttimena
Sigpendingulimit sigpendingna
stackulimit stackna

Docker里如何实现ulimit的传递

ulimit参数定义和解析

docker里对ulimit参数的定义在go-unit/ulimit.go里,这里定义了docker可以传递的ulimit参数。

  • 参数解析是通过
    opts/ulimit.Set()设置内部结构
    opts/ulimit.GetList()取用

  • 参数解析过程
    NewRunCommand()/NewCreateCommand() --->opts.AddFlags()—->pflag.FlagSet.Var()解析命令行传递过来的ulimit参数,FlagSet最终调用opts/ulimit.Set()将命令行传递的参数转换为内部格式。
    Container.runCreate()—>runconfigopts.Parse==opts.Parse()将内部格式转换为container.HostConfig格式。而这个HostConfig格式最终变成一个runc的spec(config.json)里的hostconfig字段rlimit。
    而runc解析configxx.json,完成ulimit配置。



作者:marshalzxy
链接:https://www.jianshu.com/p/8f1de1052a7c


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消