cgroup-blkioサブシステムテスト-2(fioと協力してweightテストを行う)

3037 ワード

前に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には、次の2つのオプションが必要です.
- 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がインストールされます.
512 Mサイズのファイルを2つ作成し、ランダムなハイブリッド読み書きを行い、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