ionice vs. Software-RAID

Software besorgen und anwenden
Antworten
Nachricht
Autor
der_flo
Beiträge: 4
Registriert: 11. Nov 2009 13:52

ionice vs. Software-RAID

#1 Beitrag von der_flo » 11. Nov 2009 14:00

Funktioniert ionice in einer Software-RAID-Umgebung korrekt? Ich kann den CFQ-Scheduler für die md-Devices nicht setzen, weil es im Sysfs keine entsprechenden Einträge (z.B. /sys/block/md0/queue/scheduler) gibt. Es sieht so aus, als würden die Einstellungen nicht von den darunterliegenden Festplatten zum RAID-Device propagiert:

Code: Alles auswählen

$ cat /sys/block/*/queue/scheduler
noop anticipatory deadline [cfq] 
noop anticipatory deadline [cfq] 
none
none
<snip>
none
none
noop anticipatory deadline &#91;cfq&#93; 
noop anticipatory deadline &#91;cfq&#93;

Code: Alles auswählen

# Zwei "dd"s parallel
$ ionice -c3 dd if=/dev/zero of=test1 bs=10M count=100 oflag=dsync
100+0 records in
100+0 records out
1048576000 bytes &#40;1,0 GB&#41; copied, 29,9719 s, 35,0 MB/s
 
$ ionice -c2 -n1 dd if=/dev/zero of=test2 bs=10M count=100 oflag=dsync
100+0 records in
100+0 records out
1048576000 bytes &#40;1,0 GB&#41; copied, 37,251 s, 28,1 MB/s
  
#############
# Oder auch diese&#58;
$ ionice -c3 dd if=/dev/zero of=test1 bs=14M count=1000
1000+0 records in
1000+0 records out
14680064000 bytes &#40;15 GB&#41; copied, 255,732 s, 57,4 MB/s
 
$ ionice -c2 -n1 dd if=/dev/zero of=test2 bs=14M count=1000
1000+0 records in
1000+0 records out
14680064000 bytes &#40;15 GB&#41; copied, 254,077 s, 57,8 MB/s

Benutzeravatar
hjb
Pro-Linux
Beiträge: 3248
Registriert: 15. Aug 1999 16:59
Wohnort: Bruchsal
Kontaktdaten:

#2 Beitrag von hjb » 12. Nov 2009 11:43

Hi!

Schwierige Frage. Ich kenne ionice auch erst seit 5 Minuten. Ich nehme an, du hast die Manpage bereits gelesen. Es verwendet den Systemaufruf ioprio_set, und dieser bezieht sich auf Prozesse oder Prozessgruppen. Es sollte eigentlich egal sein, welche Geräte benutzt werden, solange der CFQ-Scheduler verwendet wird.

Ein MD-Gerät braucht keinen Scheduler, weil es die Requests einfach an die beteilgten Platten weiterreicht.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Benutzeravatar
Janka
Beiträge: 3580
Registriert: 11. Feb 2006 19:10

#3 Beitrag von Janka » 12. Nov 2009 12:17

Du musst den CFQ-Scheduler für die Platte(n) setzen, nicht für das multi-device.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

der_flo
Beiträge: 4
Registriert: 11. Nov 2009 13:52

#4 Beitrag von der_flo » 13. Nov 2009 15:14

Janka hat geschrieben:Du musst den CFQ-Scheduler für die Platte(n) setzen, nicht für das multi-device.
Wie du im oberen Listing siehst, ist CFQ für alle Devices konfiguriert, also die beiden Platten sda und sdb, außerdem für ominöse dm-0 bis dm-3 (LVM?). Ich denke also nicht, dass mir hier ein Fehler unterlaufen ist.

Die Manpage habe ich natürlich gelesen und auf meiner Workstation scheinte das auch zu funktionieren, bei den neuen Server mit Software-RAID allerdings nicht.
Oder benchmarke ich falsch? Wie benchmarkt ihr konkurrierende Zugriffe?


Danke vorab für euere Meinungen!
Ciao,
der Flo

Benutzeravatar
Janka
Beiträge: 3580
Registriert: 11. Feb 2006 19:10

#5 Beitrag von Janka » 13. Nov 2009 20:07

Ich vermute auch, dass hineinspielt, dass du ein File erzeugst, das nur aus Nullen besteht, evtl. wird das ein Sparse-File.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

der_flo
Beiträge: 4
Registriert: 11. Nov 2009 13:52

#6 Beitrag von der_flo » 16. Nov 2009 11:38

Jetzt werde ich komplett verrückt. Selbst auf meiner Workstation funktioniert auf einmal ionice nicht mehr.

Shell 1:

Code: Alles auswählen

ionice -p $$ -c 2 -n 1
time cp -r source copy1
Shell 2:

Code: Alles auswählen

ionice -p $$ -c 3
time cp -r source copy2
Die beiden "cp"s synchronisiere ich einigermaßen, trotz alledem kommt bei beiden die gleiche Laufzeit heraus. "source" ist ein Verzeichnis mit 3*Linux-Source hat belegt ca. 1,2GB Speicher.

Mache ich eurer Meinung nach etwas falsch? Wie benchmarkt ihr sowas?

Danke vorab,
der Flo

Benutzeravatar
Janka
Beiträge: 3580
Registriert: 11. Feb 2006 19:10

#7 Beitrag von Janka » 16. Nov 2009 12:16

Wird ionice denn auf Kindprozesse (cp) vererbt?

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

der_flo
Beiträge: 4
Registriert: 11. Nov 2009 13:52

#8 Beitrag von der_flo » 16. Nov 2009 19:16

IMHO: Wäre ja schlimm wenn nicht. Normale Nice-Werte werden doch auch vererbt, oder? Sonst könnte ja ein Prozeß locker seine eigenen Beschränkungen lockern, er bräuchte nur forken.

Antworten