cgroup简单的操作

来源:互联网 发布:剑客软件抢购怎么样 编辑:程序博客网 时间:2024/06/05 21:52

cgroup技术被广泛的用于linux操作系统的环境下的物理分割,是linux container技术的底基础技术,是虚拟化技术的基础。
cgroup是control groups的缩写,是linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。可以将任意进程进行分组化管理的linux的内核功能。

1.对内存进行限制

yum install -y libcgroup[root@server3 ~]# vim /etc/cgconfig.conf    256Mgroup x1 {        memory {        memory.limit_in_bytes =  268435456;      memory.memsw.limit_in_bytes =  268435456;}}
[root@server3 ~]# /etc/init.d/cgconfig startStarting cgconfig service:                                 [  OK  ][root@server3 ~]# cgexec -g memory:x1 dd if=/dev/zero of=/dev/shm/bigfile bs=1M count=300Killed

限制某一个用户

[wax@server3 ~]$ vim /etc/cgrules.conf              wax:dd memory x1/[root@server3 wax]# /etc/init.d/cgred start[root@server3 wax]# su - wax[wax@server3 ~]$ dd if=/dev/zero of=/dev/shm/bigfile bs=1M count=300Killed

限制cpu的使用

[root@server3 wax]# vim /etc/cgconfig.conf group x2 {        cpu {        cpu.shares = 100;        }}[root@server3 wax]# /etc/init.d/cgconfig restart[root@server3 wax]# cgexec -g cpu:x2 dd  if=/dev/zero of=/dev/null &[1] 1354[root@server3 wax]# dd  if=/dev/zero of=/dev/null &[2] 1355

使用top查看系统的负载
这里写图片描述

[root@server3 wax]# vim /etc/cgconfig.conf group x3 {        blkio {        blkio.throttle.read_bps_device="8:0 1024000";}}[root@server3 wax]# /etc/init.d/cgconfig restart[root@server3 wax]# yum install -y iotop > /dev/null使用iotop命令查看io负载情况[root@server3 wax]# dd if=/dev/sda of=/dev/null &[root@server3 wax]# cgexec -g blkio:x3 dd  if=/dev/sda of=/dev/null  &查看io的负载情况:      

这里写图片描述

如何冻结一个进程,例如冻结1390
这里写图片描述

[root@server3 wax]# vim /etc/cgconfig.conf group x4 {        freezer {}}[root@server3 wax]# /etc/init.d/cgconfig restart[root@server3 wax]# cd /cgroup/freezer/x4[root@server3 x4]# lscgroup.event_control  cgroup.procs  freezer.state  notify_on_release  tasks[root@server3 x4]# echo 1390 > tasks[root@server3 x4]# cat freezer.state THAWED[root@server3 x4]# echo FROZEN > freezer.state

查看进行进程:
这里写图片描述