博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker的资源隔离---cpu、内存、磁盘限制
阅读量:6971 次
发布时间:2019-06-27

本文共 1248 字,大约阅读时间需要 4 分钟。

作为一个能够稳定运行的环境,不但对单个容器有要求,对所有的容器都应该有隔离,避免一个容器吃掉所有的资源。

1、cpu的隔离:

cpu的限制包括两个方面:cpu的占比、绑定cpu。

  -c可以指定CPU的占比,--cpuset可以绑定CPU

这里用试验来验证下:

docker run -it --name test01 -c 1024 --cpuset-cpus=0,1  05c259583efe /bin/bash

docker run -it --name test02 -c 512  --cpuset-cpus=0,1  05c259583efe /bin/bash

这里对test01 和 test02 进行设置cpu占比 1024:512 都是绑定cpu0,1   然后进行试验

用stress进行压测  

首先安装stress : rpm -Uvh 

然后执行 : stress -c 13 & 

给系统一个随机负载,此命令产生13个进程,每个进程都反复不停的计算由rand()产生随机数的平方根。直到资源耗尽。

最后是看结果,分别在机主机,test01,test02 上查看cpu负载情况。

主机的cpu情况:cpu0,1现在是100%  运行stress占用明显是2:1

这是test01上的数值  

这是test02上的数值 

将container1的cpu.shares改为512,

#echo “512” > /cgroup/cpu/docker/$CONTAINER_ID/cpu.shares

也就是说可以通过修改文件来达到修改cpu占比的目的。

2、内存的隔离:

Docker提供参数-m, --memory="" 限制容器的内存使用量。如:

docker run -it  -m 128m  --name test03 05c259583efe /bin/bash

可以直接用:docker stats test03 查看内存

也可压测得出:

这里 268M  VSZ 进程虚拟大小;115M  RSS 实际内存的大小;

3、磁盘限制

磁盘的IO限制:

将IO带宽限制为10M/s:

# echo "253:1 10485760" > /cgroup/blkio/docker/$CONTAINER_ID/ blkio.throttle.write_bps_device

可以通过dd文件验证:  time $(dd if=/dev/zero of=f1.txt bs=100M count=2)

磁盘大小的限制:

docker容器默认的空间是10G,如果想指定默认容器的大小(在启动容器的时候指定),可以在docker配置文件里通过dm.basesize参数指定,比如

docker -d --storage-opt dm.basesize=20G

是指定默认的大小为20G

本文转自    憬薇   51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1696121

转载地址:http://kposl.baihongyu.com/

你可能感兴趣的文章
android打电话,接电话,挂电话过程
查看>>
【LeanEAP.NET】精益企业应用平台实战----表格批量编辑与Undo/Redo功能实现
查看>>
从Excel中读取数据(python-xlrd)
查看>>
iframe显示高度自适应 兼容多浏览器
查看>>
Struts2 技术全总结 (正在更新)
查看>>
站在产品经理的角度看问题
查看>>
网络编程之urllib
查看>>
【转】WebView的JavaScript与本地代码三种交互方式
查看>>
xml转换为对象 微信接口
查看>>
HTML表单
查看>>
jzoj5984. 【北大2019冬令营模拟2019.1.1】仙人掌 (分块)
查看>>
电梯调度算法的实现
查看>>
前端之html5和css3
查看>>
跟KingDZ学HTML5之四 继续探究Canvas之路径
查看>>
054_VisualForce Ajax 01
查看>>
ASCII码、字符与字符串的显示
查看>>
Java 二进制,八进制,十进制,十六进制转换
查看>>
PHP7语法知识(四):目录文件操作、Cookie与Session、MySQL数据库的使用、Redis数据库、PHP处理XML与JSON...
查看>>
bzoj1212
查看>>
Datawhale编程——队列
查看>>