天天看點

Cgroup blkio I/O 控制

<code>blkio</code>子系統限制對指定塊裝置的 I/O 操作

1)對于配置設定給<code>blkio</code>子系統的程序,我們可以通過兩種方式控制它們對塊裝置的 I/O 操作

a)通過權重系統

Blkio 子系統參數(bkiio.weight)允許每個Cgroup 擁有相對份額的可用I/O.權重機制可用在公平排程器中實作

b)通過I/0 限制

可用使用子系統參數來為塊裝置設定I/0操作數上限,這是提供一種限制配置設定到Cgroup的程序讀寫手段

c)Example 1

在執行個體中,我将對一些程序配置限制功能,限制硬碟裝置I/0 帶寬(位元組/秒)

1,確定已挂載blkio控制器

2,建立cgroup(cgcreate) ,名稱為ioctl-william

a)Cgcreate –gblkio:/ioctl-william

3,為ioctl-william 配置設定程序,

a)我将目前 shell 配置設定到此 cgroup,以便<code>blkio</code>控制器管理在該shell 内執行的每一條後續指令的 I/O

b)echo $$ &gt;/cgroup/bliko/ioctl-william/tasks

4,設定ioctl-william 子系統參數

a)在設定之前我們做一次參考,用hdparm –t 檢查系統讀性能

i.Hdparm –direct –t /dev/sda

1./dev/sda:

2.Timing O_DIRECT diskreads:  1674 MB in  3.00 seconds = 557.64 MB/sec

b)設定子系統參數<code>blkio.throttle.read_bps_device</code>。其格式為<code>&lt;major&gt;:&lt;minor&gt;&lt;bytes_per_second&gt; </code>同樣,檢視裝置節點以擷取主裝置号和次裝置号

i.調用shell指令 ls –l 擷取裝置号

1.[root@ovirtNode216 ioctl-william]#ls -l /dev/sda

2.brw-rw----. 1 root disk 8, 0 6月  18 02:05 /dev/sda

ii.設定子系統參數

1.echo "8:0 1047576"&gt; blkio.throttle.read_bps_device

c)設定會立即生效,我們期待測試結果

i.調用shell指令hdparm –direct –t /dev/sda

2.Timing O_DIRECT diskreads:    4 MB in  4.01 seconds = 1022.54 kB/sec

d)恢複子系統參數為預設值

i.echo “8:0 0” &gt;bliko.throttle.read_bps_device  

本文轉自 swq499809608 51CTO部落格,原文連結:http://blog.51cto.com/swq499809608/1229465