码迷,mamicode.com
首页 > 其他好文 > 详细

cgroup

时间:2016-08-19 22:25:12      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:cgroup 安全

Cgroup

 

server1.example.com 172.25.23.1 rhel6.5

Iptables selinux disabled

 

1.安装,启动软件

yum insatll libcgroup -y

/etc/init.d/cgconfig start

 

2.内存限制

ls /cgroup/# 可查看所有可以用的限制

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

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) 测试

技术分享 

 

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

   技术分享

 

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

 

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

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

top

技术分享 

可看到分配的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等都还在运转

 

 

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

本文出自 “11841085” 博客,转载请与作者联系!

cgroup

标签:cgroup 安全

原文地址:http://11851085.blog.51cto.com/11841085/1840417

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!