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.
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: