【豆课堂】Monitor Docker-Memory Limit

(文中图片摘自互联网,如有侵犯您的版权,请及时联系我们,本公众号将在第一时间给予删除。)

本文适合以下读者阅读:

Site Reliability / Infrastructure Engineer

System Administrator / Developer

Build / CI/CD Engineer

对Monitoring有兴趣,且对Linux和Docker有一定了解的Software Engineer

正文

在Docker生态环境中,对container内存试用的侦测可谓是至关重要。在默认情况下,container有权限使用服务器上任何大小的内存空间。这样,操作系统内核就非常容易抛出内存溢出的异常(Out of Memory Exception)。

所以,提前设定container内存的hard与soft limit能非常好地避免这样的情况,这也是目前主流的container orchestration平台所采用的方法。这两个值分别可以使用docker run的--memory和--menory-reservation命令行选项来进行设置。

然后,选择一个合适的值需要一定时间的侦测数据及曲线。在系统中,我们需要侦测container所使用的resident set size(RSS)内存大小,并观察调整其数值,使其介于soft与hard limit之间,这样才能最大化利用服务器或服务器集群的内存资源,且防止发生内存溢出的现象。过多分配内存上限会增加服务器集训成本,即你需要更多的服务器来运行相同数量的container。反之,过少分配,可能会造成container经常触发内存异常从而被内核终结。

侦测container内存使用的另一个好处就是能更好的发现内存泄露,这点与传统程序侦测一样,就不过多赘述了。

最后,谢谢大家的时间,如果有任何意见或者建议,请随时在公众号下给我留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G046FC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励