linux中cgroup的简单使用

LinuxCGroup:资源限制与管理系统
LinuxCGroup是一种内核功能,用于限制和控制进程组的资源,包括CPU时间、内存使用、磁盘I/O等。主要功能包括资源限制、优先级控制、审计和挂起进程。文章介绍了如何绑定进程到特定CPU核,限制进程CPU使用率,以及如何限制内存使用量和磁盘读取速度,提供了具体的操作示例。

1 简介

Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。这个项目最早是由Google的工程师在2006年发起(主要是Paul Menage和Rohit Seth),最早的名称为进程容器(process containers)。在2007年时,因为在Linux内核中,容器(container)这个名词太过广泛,为避免混乱,被重命名为cgroup,并且被合并到2.6.24版的内核中去。然后,其它开始了他的发展。

Linux CGroupCgroup 可为系统中所运行任务(进程)的用户定义组群分配资源—比如CPU 时间、系统内存、网络带宽或者这些资源的组合。可以监控配置的​​​ cgroup,拒绝cgroup 访问某些资源,甚至在运行的系统中动态配置cgroup。

1.1 主要功能

(1)限制资源使用,比如内存使用上限以及文件系统的缓存限制。

(2)优先级控制,CPU利用和磁盘IO吞吐。

(3)一些审计或一些统计,主要目的是为了计费。

(4)挂起进程,恢复执行进程。

1.2 cgroups子系统

Cgroups(Control Groups)基于进程的限制,而非用户,因此对于超户运行的进程也是一样;

cgroups子系统:

  1. blkio 限制每个块设备的输入输出控制。例如:磁盘,光盘以及usb。
  2. cpu 限制使用cpu比例
  3. cpuacct 产生cgroup任务的cpu资源报告。
  4. cpuset 多核心的cpu时为cgroup任务分配单独的cpu和内存 绑定进程和cpu减少上下文切换 内存访问情况 就近访问内存
  5. devices 允许或拒绝对设备的访问。
  6. freezer 暂停和恢复cgroup任务。
  7. memory 设置内存限制以及产生内存资源报告。
  8. net_cls 可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模块(traffic control)对数据包进行控制。
  9. net_prio — 这个子系统用来设计网络流量的优先级。

10.ns 可以使不同 cgroups 下面的进程使用不同的 namespace。

11.hugetlb — 这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系统。
在这里插入图片描述

2 绑定进程到指定cpu核数

#yum安装
yum install libcgroup libcgroup-tools  numactl  -y
#获取CPU线程数
grep 'processor' /proc/cpuinfo | sort -u | wc -l
#获取CPU NUMA内存节点信息
numactl --hardware
或
lscpu | grep NUMA

在这里插入图片描述

#创建设置small组策略 4核
cgcreate -g cpuset:small
cgset -r 
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹤冲天Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值