Libvirt、Docker的基础技术-CGroups介绍

CGroups是Linux内核的资源管理机制,用于限制、记录和隔离进程组的资源使用,如CPU、内存、IO等。它允许设定资源限制、分配优先级、统计资源使用和控制任务执行。CGroups在Docker和Libvirt中扮演关键角色,用于容器和虚拟机的资源控制,确保系统资源的有效管理和分配。
摘要由CSDN通过智能技术生成

CGroups简介

CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组 (process groups) 所使用的物理资源 (如 cpu memory i/o 等等) 的机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。Libvirt将创建的虚拟机放到 Cgroups 划分的资源区中,从而实现所有虚拟机、部分虚拟机、单个虚拟机的资源控制,例如控制虚拟机的磁盘IO带宽。容器也是利用 CGroups 来限制cpu、io、内存、 网络等资源的。

CGroups的四大功能

资源限制:cgroups 可以对任务是要的资源总额进行限制。比如设定任务运行时使用的内存上限,一旦超出就发 OOM。
优先级分配:通过分配的 CPU 时间片数量和磁盘 IO 带宽,实际上就等同于控制了任务运行的优先级。
资源统计:cgoups 可以统计系统的资源使用量,比如 CPU 使用时长、内存用量等。这个功能非常适合当前云端产品按使用量计费的方式。
任务控制:cgroups 可以对任务执行挂起、恢复等操作。

CGroups的4个重要概念

任务(task)。在 Cgroups 中,任务就是系统的一个进程或线程,在 linux 系统中,内核本身的调度和管理并不对进程和线程进行区分,只是根据 clone 时传入的参数的不同来从概念上区分进程和线程;
控制组(Cgroup)。Cgroups 中的资源控制都是以Cgroup为单位实现。一个进程可以加入到某个Cgroup&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值