Wie berechnet man BLKIO-Anteile in Cgroups?

Wie berechnet man BLKIO-Anteile in Cgroups?

Derzeit versuche ich, ein Testszenario mit Debian Wheezy mit seinem Standardkernel 3.2.60-1+deb7u3 und dem Cgroups-Blkio-Controller einzurichten. Die Berechnung von blkio.weight funktioniert bei mir nicht.

Mein Setup ist das Folgende: Ich habe eine Root-Cgroup in /sys/fs/cgroup, wo der Standardwert „blkio.weight“ 1000 beträgt. Jetzt habe ich zwei Untergruppen erstellt (/sys/fs/cgroup/grp1 @ blkio.weight:800, /sys/fs/cgroup/grp2 @ blkio.weight:200), die auf zwei verschiedene LVM-Volumes auf demselben physischen Gerät schreiben und dabei die folgenden FIO-Ergebnisse erhalten:

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

Aber das ist offensichtlich kein Anteil von 80% zu 20%. Die andere Frage ist: Es gibt immer noch ein blkio.weight von 1000. Wie wird dieser Wert verwendet?

Antwort1

  1. Dercgroup-Dokumentschlägt vor, alle Dateisystempuffer zu leeren und Pagecache, Dentries und Inodes mit den folgenden Befehlen freizugeben:

    ~]# synchronisieren

    ~]# echo 3 > /proc/sys/vm/drop_caches

  2. Möglicherweise haben Sie den IOPS-Höchstwert noch nicht erreicht. Welches Gerät verwenden Sie? Sind 400 IOPS für Ihr Gerät normal oder zu wenig? Erhöhen Sie die IO-Tiefe und die Anzahl der Jobs in FIO, um den IOPS-Höchstwert für Ihr Gerät zu erreichen.

verwandte Informationen