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ドキュメントの一節です)
2.スケジューラはCFQでなければなりません.
linuxカーネルのプロファイルconfig-xxには、次の2つのオプションが必要です.
3.テストツールはcgroupに関する制限をサポートする必要があります.
4.ランダムIOが望ましい.
新しいバージョンのcgroupをサポートするfioはここでダウンロードできます
ダウンロードが完了するとmake&&sudo make installがインストールされます.
512 Mサイズのファイルを2つ作成し、ランダムなハイブリッド読み書きを行い、500のスケール、100のスケール、合計のスケールは1000です.AプロセスはBプロセスの5倍以上のIO能力を得ることができることが理論的に見られる.
次の内容のファイル
テストの開始:
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