cgroup--blkio子系统测试-2(配合fio 做weight测试)
来源:互联网 发布:力港网络客服电话 编辑:程序博客网 时间:2024/05/29 12:36
前面测试了 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 proportionalweight time based division of disk policy. It is implemented in CFQ. Hencethis 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=y3. 测试工具必须支持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=1Mioengine=libaioiodepth=32direct=1rw=randrwrwmixread=90time_basedruntime=180cgroup_nodelete=1[test1]filename=disk1.imgsize=512Mcgroup_weight=500cgroup=first[test2]filename=disk2.imgsize=512Mcgroup_weight=100cgroup=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=32test2: (g=0): rw=randrw, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=32fio-2.0.9-28-geebdStarting 2 processesJobs: 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 15064root@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
- cgroup--blkio子系统测试-2(配合fio 做weight测试)
- cgroup--blkio子系统测试-1(throttle测试)
- 使用cgroup的blkio子系统自动限制磁盘
- cgroup--cpu spuset 子系统功能测试
- fio测试
- fio 测试
- cgroup--cgroup 测试
- blkio.weight使用感想
- fio iops测试
- fio 测试iops
- FIO 硬盘测试
- FIO压力测试IOPS
- FIO测试工具介绍
- fio测试IOPS
- FIO磁盘性能测试
- io测试工具fio
- fio-基本测试命令
- FIO 测试工具使用
- log device is empty!
- ui更新数据库 记录
- Java中对象的复制
- 递归与分治策略
- Smart Client Software Factory "Add View (with presenter)" 等菜单不出来
- cgroup--blkio子系统测试-2(配合fio 做weight测试)
- cygwin下git图形界面gitk和git gui安装
- 【容器转换成为指定数组】
- GB2312,GBK与中文网页
- 百层楼扔棋子问题
- C/C++之SQLite常用函数
- Small RTOS51堆栈管理分析
- Linux下apache+php源码安装配置
- Java中File的基本操作