天天看点

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