需要安装 cgroup
yum install libcgroup
控制内存
[root@server1 /]# cd /cgroup/[root@server1 cgroup]# ls
blkio cpu cpuacct cpuset devices freezer memory net_cls
[root@server1 cgroup]# cd blkio/
[root@server1 shm]# vim /etc/cgconfig.conf 更改配置文件 最大写入数据100M
group x1 {
memory {
memory.limit_in_bytes = 104857600;
memory.memsw.limit_in_bytes= 104857600;
}
}
[root@server1 shm]# cgexec -g memory:x1 dd if=/dev/zero of=bigfile bs=1M count=200
Killed
[root@server1 shm]# cgexec -g memory:x1 dd if=/dev/zero of=bigfile bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.0153249 s, 1.4 GB/s
[root@server1 shm]# ls
bigfile
[root@server1 shm]# rm -fr *
创建一个用户
useradd qq
[root@server1 shm]# vim /etc/cgrules.conf
qq memory x1/
[root@server1 shm]# su qq
[wxh@server1 shm]$ dd if=/dev/zero of=aaa bs=1M count=20
20+0 records in
20+0 records out
20971520 bytes (21 MB) copied, 0.0498767 s, 420 MB/s
[wxh@server1 shm]$ dd if=/dev/zero of=aaa bs=1M count=1000
Killed
控制cpu
vim /etc/cgconfig.conf
group x2 {
cpu {
cpu.shares = 100;(优先级)
}
}
[root@server1 shm]# /etc/init.d/cgconfig restart
Stopping cgconfig service: [ OK ]
Starting cgconfig service: [ OK ]
[root@server1 cpu]# top
[root@server1 cpu]# dd if=/dev/zero of=/dev/null &
[root@server1 cpu]# top
控制磁盘
vim /etc/cgconfig.conf
group x3 {
blkio {
blkio.throttle.read_bps_device = "252:0 1000000";
}
}
[root@server1 shm]# /etc/init.d/cgconfig restart
Stopping cgconfig service: [ OK ]
Starting cgconfig service: [ OK ]
[root@server1 ~]# yum install iotop -y
[root@server1 ~]# cgexec -g blkio:x3 dd if=/dev/vda of=/dev/null &
[2] 14620
[root@server1 ~]# iotop
[root@server1 ~]# killadd dd
控制打入后台运行
vim /etc/cgconfig.conf
group x4 {
freezer {}
}
[root@server1 shm]# /etc/init.d/cgconfig restart
Stopping cgconfig service: [ OK ]
Starting cgconfig service: [ OK ]
[root@server1 ~]# cd /cgroup/
[root@server1 cgroup]# ls
blkio cpu cpuacct cpuset devices freezer memory net_cls
[root@server1 cgroup]# cd freezer/
[root@server1 freezer]# ls
cgroup.event_control cgroup.procs notify_on_release release_agent tasks x4
[root@server1 freezer]# cd x4
[root@server1 x4]# ls
cgroup.event_control cgroup.procs freezer.state notify_on_release tasks
[root@server1 x4]# cat tasks
[root@server1 ~]# cgexec -g blkio:x3 dd if=/dev/vda of=/dev/null &
[3] 14693
[root@server1 x4]# echo 14693 > tasks
[root@server1 x4]# cat freezer.state
THAWED
[root@server1 x4]# echo THAWED > freezer.state
[root@server1 x4]# iotop 查看进程不走了