Docker的资源限制

Cgroup

简介

Linux Cgroup全称Linux Control Group。是Linux内核的一个功能,用来限制、控制与分离一个进程组群的资源(如CPU、内存、磁盘输出输出等)。这个项目最早是有Google的工程师在2006年发起,最早的名称为进程容器(process containers)。在2007奶奶时,因为在Linux内核中,容器这个名词台过广泛,为避免混乱,被重命名为cgroup,并被合并到2.6.24版的内核中。
主要作用

  • 限制资源使用
  • 优先级控制
  • 一些审计或统计
  • 挂起进程,恢复执行进程

Cgroup子系统

名称作用
cpu 子系统主要限制进程的 cpu 使用率
cpuacct 子系统可以统计 cgroups 中的进程的 cpu 使用报告
cpuset 子系统可以为 cgroups 中的进程分配单独的 cpu 节点或者内存节点
memory 子系统可以限制进程的 memory 使用量
blkio 子系统可以限制进程的块设备 io
devices 子系统可以控制进程能够访问某些设备
net_cls 子系统可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模块(traffic control)对数据包进行控制
net_prio这个子系统用来设计网络流量的优先级
freezer 子系统可以挂起或者恢复 cgroups 中的进程
ns 子系统可以使不同 cgroups 下面的进程使用不同的 namespace
hugetlb这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系统

资源限制

内存资源限制

默认情况下,如果不对容器做任何限制,容器能够占用当前系统能给容器提供的所有资源

  • Docker限制可以从Menory、CPU、Block I/O三个方面
  • OOME
    • 一旦发生OOME,任何进行都有可能被杀死,包括docker daemon
    • Docker调整了docker daemon的OOM优先级,以免被内核关闭

在这里插入图片描述

CPU资源限制

默认情况下,如果不对容器做任何限制,容器能够占用当前系统中的所有CPU资源

  • 大多数进程时采用CFS调度算法
  • 1.13Docker版本后支持实时调度算法

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值