cgroup

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 (1pages 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) 測試

wKiom1e26WWgYjWlAABw0IraoFI348.png 

 

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)若爲2CPU,則關掉一個,否則的話,每一個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

   wKioL1e26YPjItngAADC4bvX084582.png

 

只有一個進程時,則基本佔滿

 

cgexec -g cpu:x2 dd if=/dev/zero of=/dev/null &

dd if=/dev/zero of=/dev/null &

top

wKioL1e26YPxX-RpAADX73nVv_U700.png 

可看到分配的CPU資源不一樣,這是由於優先級不一樣了

 

4. IO限制

查詢可限制IO參數的如memory

本次實驗限制的是讀取速度

 

(1) 查看所限制設備的類型

ll /dev/vda252

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等都還在運轉

 

 

 以上操做來自老師課堂所講

相關文章
相關標籤/搜索