云计算核心技术Docker教程:Docker CPU管理

docker在默认情况下,容器使用的资源是不受限制的。也就是可以使用主机内核调度器所允许的最大资源。如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用 CPU 的情况,很可能把整个主机的 CPU 资源耗尽,从而导致更大的灾难。

本文将介绍如何设置容器可以使用的 CPU 资源。

Docker 的资源限制和隔离完全基于 Linux cgroups。对 CPU 资源的限制方式也和 cgroups 相同。Docker 提供的 CPU 资源限制选项可以在多核系统上限制容器能利用哪些 vCPU。而对容器最多能使用的 CPU 时间有两种限制方式:一是有多个 CPU 密集型的容器竞争 CPU 时,设置各个容器能使用的 CPU 时间相对比例。二是以绝对的方式设置容器在每个调度周期内最多能使用的 CPU 时间。

docker run命令和 CPU 限制相关的所有选项如下:

–cpuset-cpus= 允许使用的 CPU 集,值可以为 0-3,0,1

-c,–cpu-shares=0 CPU 共享权值(相对权重)

cpu-period=0 限制 CPU CFS 的周期,范围从 100ms~1s,即[1000, 1000000]

–cpu-quota=0 限制 CPU CFS 配额,必须不小于1ms,即 >= 1000

–cpuset-mems= 允许在上执行的内存节点(MEMs),只对 NUMA 系统有效

其中–cpuset-cpus用于设置容器可以使用的 vCPU 核。-c,–cpu-shares用于设置多个容器竞争 CPU 时,各个容器相对能分配到的 CPU 时间比例。

docker提供了cpu-period、cpu-quota两个参数控制容器可以分配到的CPU时钟周期。cpu-period是用来指定容器对CPU的使用要在多长时间内做一次重新分配,而cpu-quota是用来指定在这个周期内,最多可以有多少时间用来跑这个容器。跟cpu-shares不同的是这种配置是指定一个绝对值,而且没有弹性在里面,容器对CPU资源的使用绝对不会超过配置的值。

cpu-period和cpu-quota的单位为微秒(μs)。cpu-period的最小值为1000微秒,最大值为1秒(10^6 μs),默认值为0.1秒(100000 μs)。cpu-quota的值默认为-1,表示不做控制。

例如设置容器可以在哪些 CPU 核上运行:

docker run -it –cpuset-cpus=0,6 –name Centos centos /bin/bash

设置容器中的进程可以在 cpu 0 和 cpu 6上执行。

更多关于云服务器域名注册虚拟主机的问题,请访问西部数码官网:www.west.cn

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » 云计算核心技术Docker教程:Docker CPU管理

登录

找回密码

注册