Docker容器------ Cgroup 资源配置方法

本文详细介绍了如何使用Cgroup对Docker容器进行资源控制,包括CPU资源限制、内存资源控制和磁盘IO配额设定。通过设置如--cpu-period、--cpu-quota、--cpu-share和--memory等参数,可以精确调整容器对CPU和内存的使用。同时,通过--block-weight和限制bps/iops,实现磁盘读写的带宽控制。
摘要由CSDN通过智能技术生成

目录

​编辑

一,cpu资源控制

1.1,cgroups有四大功能

1.2 设置cpu使用率上限

 1.3 设置cpu资源占用比(设置多个容器时才有效)

 1.4 设置容器绑定指定cpu

 二,内存资源控制

 三,磁盘io配额控制

3.1 限制Block IO

对bps进行限制的测试


 

一,cpu资源控制

            cgroups是一个非常强大的linux内核工具。他不仅可以现在被namespace隔离起来的资源,还可以为资源设置权重,计算使用量,控制进程启停等等,所以cgroups实现了对资源的配额和度量

1.1,cgroups有四大功能

资源限制:可以对任务使用的资源总额进行限制

优先级分配:通过分配cpu时间片数量以及磁盘io带宽大小,实际上相当于控制了任务运行的优先级。

资源统计:可以统计系统得资源使用量,如cpu时长,内存用量等

任务控制:cgroups可以对任务执行挂起,恢复等操作

1.2 设置cpu使用率上限

Linux通过CFS来调度各个进程对cpu的使用

  • 我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少cpu时间
  • 使用--cpu-period即可设置调度周期默认100ms,设置范围为:1ms-1s,对应的--cpu-period的数值范围是1000~10000000
  • 使用--cpu-qupta即可设置在每个周期内容器能够使用cpu时间,默认无限制,设置的要求不能小于1ms,也就是--cpu-quota的值必须小于等于1000

查看周期限制和CPU配额限制

docker run -itd --name test5 centos:7 /bin/bash
#启动一个centos:7镜像容器
 
docker ps -a
#查看是否启动成功,并查看pid号
 
cd /sys/fs/cgroup/cpu/docker/容器PID号
#进入到该容器的限制目录中
 
cat cpu.cfs_quota_us
#查看每个周期的cpu最大限制时间
 
cat cpu.cfs_period_us
#查看调度周期是多久
 
//cpu.cfg_period_us: cpu 分配的周期(微秒,所以文件名中用us表示),默认为100000
//cpu.cfg_quota_us: 表示该cgroups限制占用的时间(微秒),默认为-1,表示为不限制,如果设为50000,表示占用50000/100000=50%的cpu

 进行cpu压力测试然后修改每个周期的使用cpu的时间,查看cpu使用率

docker run -itd --name test1 --cpu-quota 50000 centos:7 /bin/bash
#可以直接创建一个容器并设置每个周期cpu执行的时间
或者
docker run -itd --name test1 centos:7 /bin/bash
cd /sys/fs/cgroup/cpu/docker/【容器pid】
echo 50000 > cpu.cfs_quota_us
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA|布鲁克林欧神仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值