現在、デフォルトのカーネル 3.2.60-1+deb7u3 と cgroups blkio コントローラーを備えた Debian Wheezy を使用してテスト シナリオを設定しようとしています。blkio.weight の計算が機能しません。
私の設定は次のとおりです。/sys/fs/cgroup にルート cgroup があり、デフォルトの blkio.weight は 1000 です。ここで、同じ物理デバイス上の 2 つの異なる LVM ボリュームに書き込む 2 つのサブグループ (/sys/fs/cgroup/grp1 @ blkio.weight:800、/sys/fs/cgroup/grp2 @ blkio.weight:200) を作成し、次の fio 結果が得られました。
grp1:
read : io=3276.2MB, bw=1224.8KB/s, iops=400 , runt=2740822msec
write: io=839516KB, bw=313651 B/s, iops=99 , runt=2740822msec
grp2:
read : io=3278.3MB, bw=1123.9KB/s, iops=365 , runt=2987186msec
write: io=837351KB, bw=287041 B/s, iops=91 , runt=2987186msec
しかし、これは明らかに 80% 対 20% のシェアではありません。もう 1 つの質問は、blkio.weight がまだ 1000 であるということです。この値はどのように使用されるのでしょうか。
答え1
のcgroup ドキュメント次のコマンドを使用して、すべてのファイルシステムバッファをフラッシュし、ページキャッシュ、dentry、および inode を解放することを提案します。
~]# 同期
~]# エコー 3 > /proc/sys/vm/drop_caches
IOPS のピークに達していない可能性があります。使用しているデバイスは何ですか? 400 iops はデバイスにとって正常ですか、それとも低いですか? FIO の io-depth と num-jobs を増やして、デバイスの IOPS のピークに到達してください。