docker的资源控制(内存的限制、磁盘读写限制、系统进程暂停与恢复等)

本文详细介绍了如何在Docker中进行资源控制,包括通过Linux Cgroups限制内存和CPU使用,对磁盘读写速度的约束,以及如何管理和暂停系统进程。内容涵盖容器内存限制、操作系统层面的资源控制、Docker中的Block IO限制,并展示了具体的配置和测试案例。
摘要由CSDN通过智能技术生成

1.容器资源控制

1.1 资源控制方式

linux Cgroups:是限制一个进程组使用资源的上限,包括cpu、内存、磁盘、带宽等。
mount -t cgroup 看到都挂载在/sys/fs/cgroup下,df也可以看
cat /etc/security/limits.conf这里也可以设置进程数,内存等, 但是不是很准确,因为还有swap分区
docker run --help可以在docker启动是指定使用的内存,cpu等

在这里插入图片描述
在这里插入图片描述


cd/ sys/fs/cgroup/ 里面的子目录也叫子系统,限制系统的各项性能在每个子系统下,为每个容器创建一个控制组
cd /sys/fs/cgroup/cpu
mkdir /sys/fs/cgroup/cpu/a1
cd a1会自动多出来文件,从上层目录自动拷贝
cat /sys/fs/cgroup/cpu/cpu.rt_period_us
cat /sys/fs/cgroup/cpu/a1/cpu.rt_period_us比较控制器和父级值

在这里插入图片描述


1.2 操作系统层面控制

yum search cgroup 查找cgroup命令行工具
yum install -y libcgroup-tools.x86_64 安装cgroup命令行工具
cd /sys/fs/cgroup/cpu
cat cpu.cfs_period_us cpu调用周期,单位:微秒
cat cpu.cfs_quota_us配额限制,-1表示不限制
cd a1
echo 20000 > cpu.cfs_quota_us 表示100000微秒的周期内, 只能使用20000,也就是20%
验证
dd if=/dev/zero of=/dev/null & 这是一个无限循环的进程,不会占用磁盘和IO,只会消耗cpu
top 可以看到dd占用cpu为100%
echo 18367 > tasks 让进程id和tasks关联 (18367为dd进程Pid)
top再看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值