cgroup用法介绍

一、cgroup介绍:

据官方文档介绍,rhel6为内核准备了一个新特性------资源控制,也即cgroup。此服务的软件包是libcgroup。有了这个,你就可以分
配资源,例如:CPU time,系统内存,
网络带宽等。这个是被cgconfig服务所控制的。如果此服务没有启动,在根目录下的cgroup文件夹里就不会存在内容。

[[email protected]]#/etc/init.d/cgconfig status

[[email protected]]#/etc/init.d/cgconfig stop

[[email protected]]#ls /cgroup

启动此服务之后,就会在/cgroup目录下面多出一些内容,如图所示:

[[email protected] cgroup]# /etc/init.d/cgconfig restart

Stopping cgconfig service:                                 [  OK  ]

Starting cgconfig service:                                 [  OK  ]

[[email protected] cgroup]# pwd

/cgroup

[[email protected] cgroup]# ls

blkio  cpu  cpuacct  cpuset  devices  freezer  memory  net_cls

二、cgroup各个模块的介绍:

cgroup类似与进程,他们是分等级的,各个属性都是从父进程哪里继承过来。cgroup包含了多个孤立的子系统,没一个子系统代表一个单一的资源。rhel6中一共准备了9个子系统,以下是每个子系统的详细说明:

? blkio 这个子系统设置限制每个块设备的输入输出控制。例如:磁盘,光盘以及usb等等。

? cpu   这个子系统使用调度程序为cgroup任务提供cpu的访问。

? cpuacct 产生cgroup任务的cpu资源报告。

? cpuset  如果是多核心的cpu,这个子系统会为cgroup任务分配单独的cpu和内存。

? devices  允许或拒绝cgroup任务对设备的访问。

? freezer   暂停和恢复cgroup任务。

? memory 设置每个cgroup的内存限制以及产生内存资源报告。

? net_cls   标记每个网络包以供cgroup方便使用。

? ns  名称空间子系统。

以上九个子系统之间也存在着一定的关系.详情参阅官方文档。

三、cgroup的使用:

1、cgroup的安装:

在安装系统的时候,默认已经安装了libcgroup软件包,如果没有安装可以使用以下命令进行安装:

[[email protected] /]# rpm -q libcgroup

libcgroup-0.36.1-6.el6.x86_64

如果没有安装请用YUM安装。

2、cgroup服务的控制:

将其更改为伴随系统的启动而启动:

[[email protected] /]# chkconfig --list cgconfig

cgconfig       0:off 1:off 2:off 3:off 4:off 5:off 6:off

[[email protected] /]# chkconfig cgconfig on

[[email protected] /]# chkconfig --list cgconfig

cgconfig       0:off 1:off 2:on 3:on 4:on 5:on 6:off

服务的停止和启动

[[email protected] cgroup]# /etc/init.d/cgconfig stop/start

3、cgroup的配置文件cgconfig.conf文件介绍:

在cgconfig.conf文件中,主要包含了两个主要类型:mount和group。mount是指创建以及挂载哪些层次为虚拟文件系统,并附上子系统的层次结构。cgconfig.conf文件的内容如下所示:

[[email protected] /]# more  /etc/cgconfig.conf

#

#  Copyright IBM Corporation. 2007

#

#  Authors: Balbir Singh

#  This program is free software; you can redistribute it and/or modify it

#  under the terms of version 2.1 of the GNU Lesser General Public License

#  as published by the Free Software Foundation.

#

#  This program is distributed in the hope that it would be useful, but

#  WITHOUT ANY WARRANTY; without even the implied warranty of

#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

#

# See man cgconfig.conf for further details.

#

# By default, mount all controllers to /cgroup/

mount {

cpuset = /cgroup/cpuset;

cpu = /cgroup/cpu;

cpuacct = /cgroup/cpuacct;

memory = /cgroup/memory;

devices = /cgroup/devices;

freezer = /cgroup/freezer

......省略。。。。。。。

例如cpuset=/cgroup/cputest,就可以理解为以下几条命令

[[email protected] /]# mount -t cgroup -o cpuset cpuset /cgroup/cpuset

mount: cpuset already mounted or /cgroup/cpuset busy

[[email protected] /]# umount /cgroup/cpu

cpu/     cpuacct/ cpuset/

[[email protected] /]# umount /cgroup/cpuset

[[email protected] /]# mount -t cgroup -o cpuset cpuset /cgroup/cpuset

4、与cgroup相关的几个命令:

lssubsys-----显示已经存在的子系统。

[[email protected] /]# lssubsys -am

cpu /cgroup/cpu

cpuacct /cgroup/cpuacct

memory /cgroup/memory

devices /cgroup/devices

freezer /cgroup/freezer

net_cls /cgroup/net_cls

blkio /cgroup/blkio

cpuset /cgroup/cpuset

ns

上所示,除ns子系统没有在/etc/cgconfig.conf文件里设置外,其他的都挂载在对应的目录下面。

lscgroup-----显示所有的cgroup。

[[email protected] /]# lscgroup

cpu:/

cpuacct:/

memory:/

devices:/

freezer:/

net_cls:/

blkio:/

cpuset:/

5、挂载与卸载子系统层次:

如上所示,各个模块均以挂载与对于的目录下面。以下卸载了cpu子系统层次:

[[email protected] /]# umount /cgroup/cpu

[[email protected] /]# lssubsys -am  #(-a代表所有,-m代表显示挂载点。)

cpuacct /cgroup/cpuacct

memory /cgroup/memory

devices /cgroup/devices

freezer /cgroup/freezer

net_cls /cgroup/net_cls

blkio /cgroup/blkio

cpuset /cgroup/cpuset

ns

cpu

其他的卸载与挂载都一样。使用以下命令将其挂载回去:

[[email protected] /]# mount -t cgroup -o cpu cpu /cgroup/cpu

[[email protected] /]# lssubsys -am

cpuacct /cgroup/cpuacct

memory /cgroup/memory

devices /cgroup/devices

freezer /cgroup/freezer

net_cls /cgroup/net_cls

blkio /cgroup/blkio

cpuset /cgroup/cpuset

cpu /cgroup/cpu

ns

6、创建一个自定义的cgroup:

这里要用到cgcreate命令,具体用法如下所示:先来看个示例:

[[email protected] /]# cgcreate

Usage is cgcreate -t : -a : -g :

[[email protected] /]# cgcreate -g cpu,net_cls:/test-subgroup

[[email protected] /]# lssubsys -am

cpuacct /cgroup/cpuacct

memory /cgroup/memory

devices /cgroup/devices

freezer /cgroup/freezer

net_cls /cgroup/net_cls

blkio /cgroup/blkio

cpuset /cgroup/cpuset

cpu /cgroup/cpu

ns

没有出来。看到么。其实挂载上去之后,使用lssubsys命令是看不到的。因为啊。创建完了之后,系统还不能挂载,因为挂载点不存在,等挂载点创建了之后,系统会自动挂载上去的。

7、删除cgroup

[[email protected] /]# cgdelete

Usage is cgdelete [-r] : [...]

时间: 2024-11-07 23:37:38

cgroup用法介绍的相关文章

linux 系统下iostat、iotop、vmstat安装以及用法介绍

一.iostat安装与用法介绍 主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息. 用户可以通过指定统计的次数和时间来获得所需的统计信息. 1.安装(RedHat系列) 查看系统是否安装这个命令 #which iostat       ##显示如下,表示系统已经安装了 /usr/bin/iostat 如果没有安装,则安装 #yum install sysstat -y 2.语法 iostat [ 

Cgroup 用法(转帖)

Cgroup 用法 13 January 2014 介绍docker的的过程中,提到lxc利用cgroup来提供资源的限额和控制,本文主要介绍cgroup的用法和操作命令,主要内容来自 [1]https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch01.html [2]https://www.kernel.org/doc/Docum

关于Java中this和super的用法介绍和区别

1.this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的.要注意的是this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this.his也可作为构造函数来使用.在后面可以看到 而什么是super,可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类.super的作用同样是可

(转)常用算法(Algorithm)的用法介绍

2算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. 2<algorithm>是所有STL头文件中最大的一个,其中常用到的功能范围涉及到比较.交换.查找.遍历操作.复制.修改.反转.排序.合并等等. 2<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数,包括加法和乘法在序列上的一些操作. 2<functional>中则定义了一些模板类,用以声明函数对象. 2STL提供

grep过滤用法介绍(一)

grep过滤用法介绍(一) grep主要作用是过滤出指定的行,指定的行满足什么条件,满足的条件我们就可以用一个正则表达式来表示.为了方便下面的实验进行,我们先进行cp /etc/passwd  1.txt 例如:#grep 'root'1.txt,截图如下: 匹配过滤出,有root的行! grep有一个选项很好用: 1.grep --color 'root' 1.txt 标注红色.为了方便使用,我们做一个别名操作,alias cgrep='grep --color'[删除用unalias+别名]

grep过滤用法介绍(二)

grep过滤用法介绍(二) 背景:(1)alias cgrep='grep --color' (2)cp /etc/passwd  1.txt 1. cgrep -n 'root' 1.txt 包含root所在,行数. 2. cgrep -v 'nologin' 1.txt 不包含nologin. 3. cgrep '[0-9]' 1.txt 包含所有0-9中间数字包含任意一个的行. 4. cgrep '[a-zA-Z]' 1.txt 过滤所有字母. 5.cgrep '^[a-z]' 1.txt

Oracle CASE WHEN 用法介绍

Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法 2.1 SELECT CASE WHEN 用法 SELECT gra

好压(HaoZip)的命令行模式用法介绍

好压压缩软件,又叫“2345好压”,是一款国产的优秀压缩软件,目前是免费的,据官网介绍,该软件永久免费.官网地址:http://haozip.2345.com/ 本文主要对该软件的命令行模式用法进行介绍.目前,压缩软件支持命令行模式的还有winrar,一款国外的优秀老牌压缩软件,winrar的命令行模式请参考我的另一篇博客: WinRAR的命令行模式用法介绍 - Fetty - 博客园  http://www.cnblogs.com/fetty/p/4769279.html 直接奉上我的测试代码

php $_SERVER[&#39;HTTP_USER_AGENT&#39;] 用法介绍

在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息, 显示结果为: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400 这个时候我们可以用正则表达式来匹配以上字符串,用户的浏览器,操作系统信息