cgroup 内の blkio シェアを計算する方法は?

cgroup 内の blkio シェアを計算する方法は?

現在、デフォルトのカーネル 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

  1. cgroup ドキュメント次のコマンドを使用して、すべてのファイルシステムバッファをフラッシュし、ページキャッシュ、dentry、および inode を解放することを提案します。

    ~]# 同期

    ~]# エコー 3 > /proc/sys/vm/drop_caches

  2. IOPS のピークに達していない可能性があります。使用しているデバイスは何ですか? 400 iops はデバイスにとって正常ですか、それとも低いですか? FIO の io-depth と num-jobs を増やして、デバイスの IOPS のピークに到達してください。

関連情報