cgroup

Cgrouplinux

 

server1.example.com 172.25.23.1 rhel6.5 vim

Iptables selinux disabledapp

 

1.安装,启动软件ide

yum insatll libcgroup -y测试

/etc/init.d/cgconfig startspa

 

2.内存限制rest

ls /cgroup/# 可查看全部能够用的限制server

ls /cgroup/memory # 查看memory可用到的限制blog

cat /cgroup/memory/memory.limit_in_bytes  进程

---> 9223372036854775807# 内存限制字节数

(1) 修改配置文件

vim /etc/cgconfig.conf

添加:

group x1 {

memory {

memory.limit_in_bytes=209715200

}

}

 

200*1024*1024=209715200# 200M

/etc/init.d/cgconfig restart

(2) 测试

dd if=/dev/zero of=bigfile bs=1M count=300

显示仍然能够成功截取,这是由于当内存占满后,系统会继续存储在swap下,因此,咱们还须要限制swap

(3) 补充配置文件

vim /etc/cgconfig.conf

修改:

group x1 {

memory {

memory.limit_in_bytes=209715200;

Memory.memsw.limit_in_bytes=209715200;

}

}

/etc/init.d/cgconfig restart

 

(4) 从新测试

cgexec -g memory:x1 dd if=/dev/zero of=bigfile bs=1M count=300

 

会显示Killed

 

(5) 执行脚本的内存限制

a) 下载脚本 memapp1 memapp2

两个均为 4096 pages of memory (1pages of memory = 4字节)

加执行权限,现令memapp1能够执行,memapp2不能够

4096*4*1024=16777216

 

b) vim /etc/cgconfig.conf

修改:

group x1 {

memory {

memory.limit_in_bytes=16777216;

Memory.memsw.limit_in_bytes=16777216;

}

}

/etc/init.d/cgconfig restart

 

c) vim /etc/cgrules.conf

添加:

*:memapp1  memory  x1/

*:memapp2  memory  x1/

限制任何人在执行这两个脚本时,都遵循x1里的限制

/etc/init.d/cgred restart

 

d) 测试

wKiom1e26WWgYjWlAABw0IraoFI348.png 

 

3. CPU限制

查询CPU限制的方法和memory相同

本次实验限制cpu.shares

(1) 查看信息(优先级)

cat /cgroup/cpu/cpu.shares

1024

(2) 修改配置文件

vim /etc/cgconfig.conf

修改:

group x2 {

cpu {

cpu.shares=100;

}

}

优先级设为100,小于默认的

/etc/init.d/cgconfig restart

 

(3) 测试

a)若为2CPU,则关掉一个,否则的话,每一个CPU则执行一个任务,没有对比性

cd cpu/cpu1  (cpu0不能够关掉,里面都没有online的选择)

cat online

---> 1

echo 0 > online即为关掉cpu1

 

b) dd if=/dev/zero of=/dev/null &

  dd if=/dev/zero of=/dev/null &

top

可看到2个进程在均衡的占用CPU

 

cgexec -g cpu:x2 dd if=/dev/zero of=/dev/null &

top

   wKioL1e26YPjItngAADC4bvX084582.png

 

只有一个进程时,则基本占满

 

cgexec -g cpu:x2 dd if=/dev/zero of=/dev/null &

dd if=/dev/zero of=/dev/null &

top

wKioL1e26YPxX-RpAADX73nVv_U700.png 

可看到分配的CPU资源不一样,这是由于优先级不一样了

 

4. IO限制

查询可限制IO参数的如memory

本次实验限制的是读取速度

 

(1) 查看所限制设备的类型

ll /dev/vda252

ll /dev/sda 8

(2) 修改配置文件

vim /etc/cgconfig.conf

添加:

group x3 {

blkio {

Blkio.throttle.read_bps_device=”252:0  1024000”;

}

}

/etc/init.d/cgconfig restart

(3) 测试

cgexec -g blkio:x3 dd if=/dev/vda of=/dev/null

会发现读取速度便慢不少

 

5. 限制 freezer

 

(1) 修改配置文件

vim /etc/cgconfig.conf

添加:

group x4 {

freezer {

}

}

/etc/init.d/cgconfig restart

 

(2) 冻结任务

cd /cgroup/freezer/x4

echo 7952 > tasks

cat freezer.state

---> THAWED 活跃状态

 FROZEN 冻结状态

echo FROZEN > freezer.state

会发现7592任务被冻结了,可是任务还在进行中,像CPU等都还在运转

 

 

 以上操做来自老师课堂所讲

相关文章
相关标签/搜索