Linux Cgroup(Control Groups)是Linux内核提供的用于限制、记录、隔离进程组可以使用的资源(cpu、memory、IO等)的一种机制。
实验环境
系统: rhel6 server1 172.25.41.1
物理机 172.25.41.250
一·对mem内存的限制
[root@server1 ~]# yum search cgroup
[root@server1 ~]# yum install libcgroup.x86_64
[root@server1 ~]# cd /cgroup/ #安装好libcgroup之后,会在根下产生/cgroup,此时该目录下还没有任何东西
[root@server1 cgroup]# /etc/init.d/cg config start
[root@server1 cgroup]# ll
[root@server1 cgroup]# cd memory/
[root@server1 memory]# ls
[root@server1 memory]# vim /etc/cgconfig.conf
[root@server1 memory]# bc #计算字节
200*1024*1024
209715200 #200M
[root@server1 memory]# vim /etc/cgconfig.conf #编辑对资源限制的
# 添加以下内容
group x1 {
memory {
memory.limit_in_bytes = 209715200; # 限制使用的最大内存数
}
}
[root@server1 memory]# cd
[root@server1 ~]# /etc/init.d/cgconfig restart
[root@server1 ~]# cd /cgroup/
[root@server1 cgroup]# cd memory/
[root@server1 memory]# cd x1/
[root@server1 x1]# ls
[root@server1 x1]# cat memory.limit_in_bytes # 此时是对内存的吞吐量为无限大
200*1024*1024
209715200
[root@server1 x1]# cd /dev/shm/
[root@server1 shm]# free -m
[root@server1 shm]# dd if=/dev/zero of=file1 bs=1M count=100
[root@server1 shm]# free -m
[root@server1 shm]# dd if=/dev/zero of=file1 bs=1M count=300
[root@server1 shm]# free -m
[root@server1 shm]# cgexec -g memory:x1 dd if=/dev/zero of=file1 bs=1M count=300 #进行压力测试
[root@server1 shm]# free -m
[root@server1 shm]# rm -f file1
[root@server1 shm]# free -m
[root@server1 shm]# dd if=/dev/zero of=file1 bs=1M count=300
[root@server1 shm]# free -m
[root@server1 shm]# cd /cgroup/memory/
[root@server1 memory]# ls
[root@server1 memory]# cat memory.memsw.limit_in_bytes
9223372036854775807
[root@server1 memory]# cd
[root@server1 ~]# ls
anaconda-ks.cfg install.