Docker如何处理OOM杀手和内存限制?
发布时间:2020-12-16 03:55:42 所属栏目:安全 来源:网络整理
导读:我有一个docker容器,它通过bash脚本启动一个简单的java(基于jgroups的)应用程序. java进程通过Xmx限制128m,容器允许使用256m(禁用交换).不幸的是,我不时会面对以下OOM消息: Jul 07 02:43:54 ip-10-1-2-125 kernel: oom_kill_process: 16 callbacks suppress
我有一个docker容器,它通过bash脚本启动一个简单的java(基于jgroups的)应用程序. java进程通过Xmx限制128m,容器允许使用256m(禁用交换).不幸的是,我不时会面对以下OOM消息:
如您所见,我的应用程序的RSS大约只有64M.但由于某些原因,cgroup的RSS为256M(包括128M的大页面). 这是一种操作系统缓存吗?如果是这样,为什么OOM在杀死用户的应用程序之前不会刷新它们? 最佳答案
哦!看起来我忘了发布答案.
上面的问题是我的java进程,它与docker无关.我错误地认为OOM报告以Kbytes打印RSS.这是错的 – OOM报告打印的页面数量通常为每个4K. 就我而言,pid 26675为RSS获取64577页,等于(64577 * 4K)258’308 KBytes.添加2个bash进程为我们提供了当前CGroup的限制 – 262144kB. 因此,进一步的分析必须在JVM字段中:堆/元空间分析,本机内存跟踪,线程等…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- angularjs – 通过ng单击几个元素切换类
- Build Your Own Angularjs 读书笔记(AngularJS牛
- bootstrap fileinput 文件上传工具
- angular – 在返回observable之前处理数据
- angularjs – 如何创建一个npm脚本来运行几个命令
- azure – 在Ubuntu 14.04LTS上安装Docker.io
- WebService的一个C#实例(VS2008)
- 报错:Couldn't register with the bootstra
- docker – 来自牧场主容器中python客户端的smtp
- 【数据结构】Trie树的应用:查询IP地址的ISP(Ja
热点阅读