广告

深入理解Docker的硬件资源控制与验证

2023-11-21

一、docker管理资源机制——Control group

Control group 是Linux内核提供的一种限制所使用物理资源的机制,这些资源主要是CPU、内存、blkio等。

二、对CPU的控制

对CPU的控制有下面几种方式:

限制CPU的使用率;

多任务按比例分配CPU;

限制CPU内核(核心数)使用;

2.1基于使用率限制CPU

我们可以在文件中查看默认的限制设置,我们先运行一个容器(两种方式,我们使用run的命令来快速运行一个容器):

#检查本地是否有镜像或容器存在

检查本地是否有镜像或容器存在

#运行一个容器

运行一个容器

我们进入docker目录下的容器编号目录中,查看cpu.cfs_quota_us文件,其中的内容默认为-1(我们可以对此更改)

查看cpu.cfs_quota_us文件

​ 果然,默认的配额值为-1,这就表示默认情况下是不对CPU资源进行控制的,显然这样在使用容器的过程中非常容易出现问题,例如一台真实服务器运行着各种各样的数量非常多的容器,而其中一台容器占据了接近90%的CPU使用率,那么剩下来的如此多的容器只能在剩余的10%中获取使用,这很容易引发业务故障,因此我们需要对CPU包括随后的内存及文件IO流进行优化处理的配置。

​ 首先,本小节是对CPU的使用率进行的控制,那么下面就来看看怎么配置的吧。

我们可以直接进入这个文件进行设置,那么怎么设置呢?

这就需要说明一下了,CPU的百分比是以1000位单位的,因此总额为100000,即10万,那么我们写入20000,则使用率为20%。除了直接改(echo也行)也可以在命令行中进行设置:

在命令行中进行设置

那么我们怎么验证或者说测试这个使用率占比最高是在20%呢?

我们可以进入这个容器中执行操作,使得CPU满载,另外开一个terminal使用top命令查看CPU使用情况即可。

​ 为了演示整个效果我在另外一个终端使用top命令查看,可以发现整个CPU使用率在20%左右,会有所上浮但是不会过分离谱,计算完成后将会释放资源的。截取两张图作为验证结果:

查看CPU使用情况

查看CPU使用情况2

 

2.2基于CPU内核使用限制

​ 在docker中可以使用--cpuset-cpus选项来使某些程序独享CPU的内核,以便提高其处理速度。如果我们的CPU核心数为4那么对应的编号为0,1,2,3,可以通过top命令来查看,按下数字1后就可以查看CPU编号以及对应信息了。

查看CPU编号以及对应信息

具体的控制设置如下:

[root@docker ~]# docker run -itd --name test2 --cpuset-cpus 1,3 centos:7 /bin/bash

116606ef1e11b0afa09da67b2782c1cc0d042eb026cbfe113d7dac11ae818dcc#即基于cpuset-cpus进行设置
使用第二种方式的测试方法,基于top命令查看验证,结果如下图所示:

top命令查看验证

三、对内存的控制

​ 内存使用相对于CPU而言比较简单了,通过-m参数进行设置。

实例演示:

通过-m参数进行设置

在另一个终端上进行查看:docker stats

结果如下图:

在另一个终端上进行查看:docker stats  结果如下图:

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。本站原创内容未经允许不得转载,或转载时需注明出处!

上一篇:Centos7系统如何使用touch命令创建修改文件

下一篇:Windows server 2016如何设置定时更新

这条帮助是否解决了您的问题?已解决未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好!很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!

立即注册91VPS账号,免费体验多款产品
立即注册
联系我们
全国咨询热线:
0712-5319406
QQ客服:
800193021
91VPS微信客服

扫码联系微信客服