cgroup技术被广泛的用于linux操作系统的环境下的物理分割,是linux container技术的底基础技术,是虚拟化技术的基础。
cgroup是control groups的缩写,是linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源的机制。可以将任意进程进行分组化管理的linux的内核功能。
1.对内存进行限制
yum install -y libcgroup
[root@server3 ~]# vim /etc/cgconfig.conf 256M
group x1 {
memory {
memory.limit_in_bytes = 268435456;
memory.memsw.limit_in_bytes = 268435456;
}
}
[root@server3 ~]# /etc/init.d/cgconfig start
Starting cgconfig service: [ OK ]
[root@server3 ~]# cgexec -g memory:x1 dd if=/dev/zero of=/dev/shm/bigfile bs=1M count=300
Killed
限制某一个用户
[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=300
Killed
限制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]# ls
cgroup.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
查看进行进程: