docker资源限制
默认情况下,容器没有资源使用限制,可以使用主机内核调度程序允许的尽可能多的资源
Docker提供了控制容器使用资源的方法,可以限制容器使用多少内存或CPU等
docker info命令可以查看内核中的某项特性警告(在输出结尾处)
修改内核参数 /etc/default/grub
vim /etc/default/grub
OOM(Out of Memory Exception)
若没有足够的内存来执行其他重要的系统任务,将会抛出OOM,随后系统会开始杀死进程以释放内存,凡是运行在宿主机的进程都有可能被kill
产生OOM异常时,Dockerd尝试通过调整Docker守护程序的OOM优先级来减轻这些风险,但是容器的OOM优先级并未调整,这使得容器被杀死可能性更大
不推荐通过守护程序或容器上手动设置--oom-score-adj为极端负数,或通过在容器上设置--oom-kill-disable来绕过这些安全措施
OOM优先级机制
linux会为每个进程算一个分数,最终将分数最高的kill
/proc/PID/oom_score_adj
范围为-1000到1000,值越高容易被宿主机kill掉,如果将该值设置为-1000,则进程永远不会被kill
/proc/PID/oom_adj
范围为-17到+15,取值越高越容易被干掉,如果是-17,则表示不能被kill
/proc/PID/oom_score
这个值是系统综合进程的内存消耗量、CPU时间和oom_adj计算出的进程得分,消耗内存越多得分越高,容易被宿主机kernel强制杀死
stress-ng压力测试工具
stress-ng是一个压力测试工具,可以通过软件仓库进行安装,也提供了docker版本的容器
stress-ng安装
软件包安装
Centos:yum -y install stress-ng
Ubuntu:apt -y install stress-ng
容器方式安装
docker pull lorel/docker-stress-ng
stress-ng 使用
docker run -it --rm lorel/docker-stress-ng
容器内存限制
Docker可以强制执行硬件内存限制,即只允许容器使用给定的内存大小
Docker也可以执行非硬性内存限制,即容器可以使用尽可能多的内存
内存相关选项
容器可以使用的最大物理内存量,硬限制,此选项最小允许值为 4m
允许此容器交换到磁盘的内存量 , 必须先用 -m 对内存限制才可以使用 , 详
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!