什么是cgroups?有什么作用?
cgroups(Control Groups) 是linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物理资源。本质上来说,cgroups 是内核附加在程序上的一系列钩子(hook),通过程序运行时对资源的调度触发相应的钩子以达到资源追踪和限制的目的。
本文以Ubuntu 16.04 系统为例介绍cgroups,所有的demo 均在该系统中演示。
为什么要了解cgroups
在以容器技术为代表的虚拟化技术大行其道的时代了解cgroups 技术是非常必要的!比如我们可以很方便的限制某个容器可以使用的CPU、内存等资源,这究竟是如何实现的呢?通过了解cgroups 技术,我们可以窥探到linux 系统中整个资源限制系统的脉络。从而帮助我们更好的理解和使用linux 系统。
cgroups 的主要作用
grep命令有什么用实现cgroups 的主要目的是为不同用户层面的资源管理提供一个统一化的接口。从单个任务的资源控制到操作系统层面的虚拟化,cgroups 提供了四大功能:
资源限制:cgroups 可以对任务是要的资源总额进行限制。比如设定任务运行时使用的内存上限,一旦超出就发OOM。
优先级分配:通过分配的CPU 时间片数量和磁盘IO 带宽,实际上就等同于控制了任务运行的优先级。
资源统计:cgoups 可以统计系统的资源使用量,比如CPU 使用时长、内存用量等。这个功能非常适合当前云端产品按使用量计费的方式。
任务控制:cgroups 可以对任务执行挂起、恢复等操作。
相关概念
Task(任务)
在linux 系统中,内核本身的调度和管理并不对进程和线程进行区分,只是根据clone 时

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。