Docker容器资源配额

Docker利用cgroup进行资源控制,包括CPU、内存和磁盘。cgroup是一种Linux内核功能,用于限制和隔离进程组的资源使用。文章详细介绍了如何设置CPU份额、CPU周期、CPU核心限制,以及内存和I/O控制。对于多核服务器,可以通过--cpuset参数限制容器使用的CPU内核和内存节点,以优化性能。此外,还讨论了SMP、NUMA和MPP服务器架构对资源控制的影响。
摘要由CSDN通过智能技术生成
Docker容器资源配额

启动时指定cpu,内存,硬盘等资源使用份额

Docker 通过 cgroup来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面,基本覆盖了常 见的资源配额和使用量控制。

cgroup概述: cgroup是Control Groups的缩写,是Linux 内核提供的一种可以限制、记录、隔离迚程组所使用 的物理资源(如 cpu、memory、磁盘 IO等等) 的机制,被LXC、docker等很多项目用于实现迚程资源 控制。cgroup将任意迚程迚行分组化管理的 Linux 内核功能。cgroup本身是提供将迚程迚行分组化管 理的功能和接口的基础结构,I/O 戒内存的分配控制等具体的资源管理功能是通过这个功能来实现的。

默认形况下每个docker容器的cpu份额都是1024。

cpu使用份额控制
给容器分配512权重的cpu使用份额
[root@docker ~]# docker run --help | grep cpu-shares
  -c, --cpu-shares int                        CPU shares (relative weight)
[root@docker ~]# docker run -dit --cpu-shares 512 centos
2396df1c6c05f83dbcd5fd95d21abb2736026012df071914c84f6b7b7110b04f
[root@docker ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
2396df1c6c05        centos              "/bin/bash"         8 seconds ago       Up 7 seconds                            unruffled_shockley
[root@docker ~]# docker exec -it 2396df1c6c05 cat /sys/fs/cgroup/cpu/cpu.shares 
512
cpu周期控制
      --cpu-period int                        Limit CPU CFS (Completely Fair Scheduler) period	指定容器对CPU的使用要在多长时间内做一次重新分配
      --cpu-quota int                         Limit CPU CFS (Completely Fair Scheduler) quota
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值