cgroup--blkio子系统测试-2(配合fio 做weight测试)

      前面测试了 blkio 的throttle部分,本文测试 blkio 的 weight,也就是每个进程能使用的IOPS的能力的比例,必须通过CFQ调度器来实现。

fio是一个测试 IOPS 的好工具,因此这里用fio 配合 cgroup 测试存储设备IOPS的分配。


要使用blkio的weight限制需要注意几个事情:
1. 必须走directio, 如果buffered io因为最终写IO的进程不是发起IO的进程,结果会有很大的偏差。 (下面是cgroup 文档中一段话)

Currently two IO control policies are implemented. First one is proportional
weight time based division of disk policy. It is implemented in CFQ. Hence
this policy takes effect only on leaf nodes when CFQ is being used.
2. 调度器必须是CFQ。

在linux 内核的配置文件 config-xx中需要有如下两个选项

- Enable Block IO controller
        CONFIG_BLK_CGROUP=y

- Enable group scheduling in CFQ
        CONFIG_CFQ_GROUP_IOSCHED=y
3. 测试工具必须支持cgroup的相关限制。
4. 最好是随机的IO。

新版本的支持 cgroup 的 fio 可以在这里下载 

git clone git://git.kernel.dk/fio.git 
下载完后 make && sudo make install  即可安装。


再创建2个512M大小的文件,进行随机的混合读写,一个给500的比例,一个给100的比例,总的比例是1000。那么理论上可以看到A进程可以得到多于B进程5倍的IO能力。


创建一个文件 test.fio,内容如下:

[global]
bs=1M
ioengine=libaio
iodepth=32
direct=1
rw=randrw
rwmixread=90
time_based
runtime=180
cgroup_nodelete=1

[test1]
filename=disk1.img
size=512M
cgroup_weight=500
cgroup=first

[test2]
filename=disk2.img
size=512M
cgroup_weight=100
cgroup=second

启动测试:
$sudo fio test.fio

sina@ubuntu:~/work/test$ sudo fio test.fio 
test1: (g=0): rw=randrw, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
test2: (g=0): rw=randrw, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32
fio-2.0.9-28-geebd
Starting 2 processes
Jobs: 2 (f=2): [mm] [100.0% done] [1024K/1024K/0K /s] [1 /1 /0  iops] [eta 00m:00s]   


察看 两个进程

root@ubuntu:/sys/fs/cgroup/blkio# cat first/tasks 
15064
root@ubuntu:/sys/fs/cgroup/blkio# cat second/tasks 
15065


sudo iotop
察看磁盘 读写 速度,可见读写速度满足1:5的比例。




原文链接:

fio配合cgroup测试存储设备IOPS分配

http://blog.yufeng.info/archives/2001


相关链接:

linux使用FIO测试磁盘的iops

http://www.xclinux.cn/?p=958


附:

linux IO 协议栈框图:



从上面可以看出什么是 direct  IO。



redhat 官方链接:

https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/ch-Subsystems_and_Tunable_Parameters.html





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值