除了上述对CPU的使用限制外,现代的计算机一般是多核CPU,因此,我们有时还希望一个Docker容器能够固定在一个CPU上运行。这对于NUMA(即非一致存储访问结构)的服务器尤为有用,而对于简单的单核服务器则没有任何作用。
在Docker容器运行时,我们可以使用参数–cpuset来绑定CPU,使得该Docker容器只在固定的CPU上运行。
在Docker容器运行后,我们可以使用task命令查看Docker容器使用的CPU内核,如下所示:
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
fmt.Println(
cpu
num:, *
cpu
num)
runtime.GOMAXPROCS(*
cpu
num)
for i := 0; i < *
cpu
num - 1; i++ {
go func() {
ctop 就像
linux
的 top 命令一样,top 用来查看进程的实时状态,而 ctop 用来查看系统中各个
容器
的实时状态
可以看到当期系统中有哪些
容器
,通过前面的指示灯可以看出是否在运行状态,还有他们的
CPU
、内存、网络、IO 这些重要指标
2. 安装
Linux
下安装方法:
wgethttps://github.com/bcicen/ctop/releases/download/v0...
docker
(三)——
cpu
/内存/磁盘
资源
控制
资源
控制cgroups工具概述功能
设置
CPU
使用率上限
cpu
-period与
cpu
-quota查看两个配额数值进行
CPU
压力测试
设置
50%的比例分配
CPU
使用时间上限
设置
CPU
资源
占用比(
设置
多个
容器
时才有效)
设置
命令格式分别进入
容器
,进行压力测试查看
容器
运行状态(动态更新)
设置
容器
绑定指定的
CPU
分配虚拟机4个
CPU
核数并指定核创建
容器
进入
容器
,进行压力测试执行top命令再按1查看
CPU
使用情况对内存使用的
限制
创建指定物理内存的
容器
创建指定物理内存和swap
1.1 使用CFS调度
默认情况下,
容器
可以无
限制
地使用主机的
cpu
资源
,可以通过
设置
参数来进行
限制
。一般都采用
Linux
默认的CFS调度法,当然也可以使用实时调度。CFS调度可以使用如下参数来进行
限制
:
--
cpu
s=<value>:
限制
容器
可以使用多少
cpu
,可以
设置
为小数,例如可以
设置
--
cpu
s=1.5。该选项代表使用
cpu
的百分比,而不是具体的个数。例如主机一共有四个
cpu
,设--
cpu
s=2,不代表有两个
cpu
被100%占用,另外两个完全空闲,可
通过-
cpu
-share并不是
cpu
资源
的绝对
数量
,而是一个相对的权重值,某个
容器
最终能分配到的
cpu
资源
取决于它的
cpu
share占所有
容器
cpu
share综合的比例。Block IO 是另一种可以
限制
容器
使用的
资源
,Block IO 指的是磁盘的读写,
docker
可通过
设置
权重,
限制
bps和iops的方式控制
容器
读写磁盘的带宽。共享式
CPU
资源
,是按比例切分
CPU
资源
,
Docker
默认每个
容器
的权值为1024。在有多个
容器
竞争
CPU
时,我们可以
设置
每个
容器
能会用的
CPU
时间比例,这个比例叫做。
在使用
docker
运行
容器
时,默认的情况下,
docker
没有对
容器
进行硬件
资源
的
限制
,当一台主机上运行几百个
容器
,这些
容器
虽然互相隔离,但是底层却使用着相同的
CPU
、内存和磁盘
资源
。如果不对
容器
使用的
资源
进行
限制
,那么
容器
之间会互相影响,小的来说会导致
容器
资源
使用不公平;大的来说,可能会导致主机和集群
资源
耗尽,服务完全不可用。
docker
作为
容器
的管理者,自然提供了控制
容器
资源
...
默认情况下
容器
可以使用的主机
CPU
资源
是不受
限制
的。和内存
资源
的使用一样,如果不对
容器
可以使用的
CPU
资源
进行
限制
,一旦发生
容器
内程序异常使用
CPU
的情况,很可能把整个主机的
CPU
资源
耗尽,从而导致更大的灾难。本文将介绍如何
限制
容器
可以使用的
CPU
资源
。
本文的 demo 中会继续使用《
Docker
:
限制
容器
可用的内存》一文中创建的
docker
镜像 u-stress 进行压力测试,文中就不再过多的解释了。
限制
可用的
CPU
个数
在
docker
1.13 及更高的版本上,能够很容易的
限制
容器
可以使用的主机
CPU
个数。只需要通过 –
cpu
s 选项指定
容器
可以使
docker
进阶!cgroup的
资源
控制
docker
的
资源
配置
方法
cpu
使用率控制利用stress工具测试
cpu
CPU
周期控制
cpu
core控制
CPU
配额控制参数的混合使用内存
限额
block io
限制
bps和iops
限制
小结
资源
限制
主要类型
资源
限制
的几种方式
资源
限制
的状态查询
docker
的
资源
配置
方法
docker
通过cgroup控制
容器
使用
资源
配额,包括
CPU
,内存,磁盘三大方面
cpu
使用率控制
CPU
周期:1s为一个周期的定律,参数值一般为100000ms,假如需要给
容器
分配
CPU
使用率的20%