Tuning für parallele Plattenzugriffe

M

MacLux

Eroberer
Hallo,

hab hier ein 8-Kern-System mit Debian Etch. Im Rechner befindet sich ein internes RAID im Stripe-Modus mit Redundanz-Platte. Extern angeschlossen an einen PCIx-SCSI-Controller (Adaptec) ist ein 2TB EasyRaid mit 8 SATA-Platten (ReiserFS) auf dem jede Menge Videosequenzen bestehend aus (grösstenteils) Einzelframes abgelegt sind.

Leider ist der Datendurchsatz auf diese Bild-Daten nicht doll. hdparm (-tT) zeigt zwar folgendes an:

Timing cached reads: 6034 MB in 2.00 seconds = 3018.73 MB/sec
Timing buffered disk reads: 114 MB in 3.01 seconds = 37.81 MB/sec

Beim 8fach-parallelen Zugriff mit 8 Instanzen unserer Software rudert jedoch spätestens der dritte Prozess nur noch auf 30 bis 40 Prozent Kernauslastung herum. xosview zeigt auch für die Kerne immer nur einige wenige Spitzen an. Oftmals scheinen die Kerne für Bruchteile von Sekunden "gar nichts" zu tun. Allerdings muss man sagen, dass auch meine bisherigen Versuche, die Daten von den internen Platten einzulesen, ähnliche Ergebnisse zeigten. Evtl. dauert es von den internen Platten etwas länger bis die Prozesse von 100 Prozent Kernauslastung wegkommen.

Es gab auch für beide Fälle (extern und intern) kaum Performance-Unterschied, egal ob ich die Prozesse wie im Normalfall aus den notwendigen Perl-Scripts startete oder direkt an der Shell.

Nun hab ich im direkten Vergleich noch ein (hardware-mässig) identisches System mit Windows Server 2003, das ebenfalls über ein externes RAID verfügt (NTFS). Auf diesem System funktioniert der Zugriff absolut hoch-performant und unter voller Kernauslastung. Der Source-Code für die Datenzugriffe in unserer Software ist für Linux und Windows identisch.

Ich frage mich, ob vielleicht der Treiber für das externe RAID auf dem Debian bzw. auch irgendeine Konfiguration für die internen Plattenzugriffe noch getuned werden könnte, um die Kernauslastung nicht durch evtl. langsame Plattenzugriffe zu beeinträchtigen. Wie könnte ich die Ursache für das Ausbremsen finden? Welche Massnahmen würdet Ihr vorschlagen?

Grüsse,
Mac

Edit: Achso, es sei noch erwähnt, dass die 8-Kern-Unterstützung generell zu funkionieren scheint. Starte ich einen "make -j8", sind alle Kerne ganz fleissig am Rödeln im Bereich 90 bis 100 Prozent.
 
Zuletzt bearbeitet:
Und nochmal ich. Ich glaube ich hab herausgefunden, wo die Ursache für den Performance-Einbruch liegt. Ich weiss aber leider nicht, wo genau die Schraube ist, an der ich in Debian drehen muss.

Das Problem tritt nur auf, wenn unsere Software in Verzeichnissen lesen muss, die tausende von Dateien beinhalten. Füttere ich nicht mit Einzelbildern (PNGs) sondern mit grossen Videofiles (MOVs), läuft das Ding wie es soll.

Dass das Problem auf dem Windows Rechner nicht auftaucht, liegt an dessen Server-Konfiguration (Windows Server 2003). Auf jedem Nicht-Server würde es (ohne zu schrauben) auch passieren. Unser PC-Händler hat mir zu diesem Punkt einen Microsoft-Supportlink gegeben, mit dem man das Problem unter Windows lösen kann: Klick

Jetzt müsste ich nur noch wissen, wo ich das Pendant unter Debian finde! *fleh*

Gruss,
Mac
 
Zuletzt bearbeitet:
Falls es noch jemand interessiert. Ich hab ordentlich am Read-Ahead gedreht. Bei mir hat 256 MB ganz gut geklappt.

Desweiteren hab ich noch anderswo den Tipp bekommen, mit dem IO-Scheduler herumzuprobieren. Das gab nochmal 'nen ordentlichen Schub: Klick

Vielen Dank für alle Hinweise!

Gruss,
Mac
 
Ja gut mit einer einer Reiser Partition kennen sich glaub ich weniger Leute aus als mit ext3.
 

Ähnliche Themen

Heimserver Konfiguration für Ubuntu Server?!

SATA RAID Controller 3Ware / LSI / Adaptec

raid5 zu lamgsamm

Modulfehler?

LVM IDE langsam...

Zurück
Oben