linux 容器(LXC) 第4章 cgroups

Linux Cgroups(control groups)是一种内核特性,用于限制和隔离进程的资源使用,如CPU、内存和IO。它通过子系统如cpu、cpuacct、cpuset、memory等实现对资源的精细化控制,例如分配特定数量的CPU核心和内存给不同进程。此外,cgroups还能用于统计资源使用情况、限制块设备IO、控制网络流量以及冻结和启动进程。通过对cgroups的深入理解和应用,可以有效管理和优化系统的资源分配。
摘要由CSDN通过智能技术生成

1. cgroups 的简介

cgroups (control groups) 是linux 内核提供的一种可以分配给单个进程和多个进程资源,并可以对cpu、mem(io、disk、traffic 现在应该还不支持)进行精细化控制。比如一台处理机有32core 128G内存;这台机器设置最多跑6个application(进程);1个进程申请 8core 20G;1个进程申请16core  64G;1个进程申请 2core 8G 等等,这些都可以通过cgroups 进行按需分配(前提是机器还有资源),如果这台机器没有那调度系统会分配其他的处理机器


2. cgroups 的概念和原理

cgroups 为每种可以精细化控制的资源定义了一个子系统,典型的子系统如下:

  • cpu 子系统: 主要限制进程cpu的使用率(也可以理解为限制分配给cpu的core,最终限制是cpu 利用率的限制;比如一共32core 分配4core ,那这个进程cpu 最大占用率 = 12.5%,所以一个进程可以申请< 1core,因为最后是转换成比率来控制的
  • cpuacct 子系统:统计每个进程cpu 使用率的报告,如果达到预定的上限,可以采取一定的措施
  • cpuset 子系统:可以为进程分配单独的cpu节点或者mem节点,可以理解为为进程分配指定的额cpu占有率,就是精细化控制cpu资源
  • memery 子系统:可以限制进程memery 最大的使用量
  • blkio 子系统:可以限制进程访问的块设备io
  • device 子系统:可以控制访问的设备
  • net_cls 子系统:标记cg
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值