Cgrouplinux
server1.example.com 172.25.23.1 rhel6.5 vim
Iptables selinux disabledapp
1.安裝,啓動軟件ide
yum insatll libcgroup -y測試
/etc/init.d/cgconfig startspa
2.內存限制rest
ls /cgroup/# 可查看全部能夠用的限制server
ls /cgroup/memory # 查看memory可用到的限制blog
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 (1個pages 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)若爲2個CPU,則關掉一個,否則的話,每一個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/vda爲252
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等都還在運轉
以上操做來自老師課堂所講