home *** CD-ROM | disk | FTP | other *** search
- H2bench -- by Harald Bögeholz / c't Magazin für Computertechnik
- Copyright (C) 1999 Verlag Heinz Heise GmbH
- ===============================================================
-
-
- H2bench läuft unter DOS und greift direkt über das BIOS auf die
- Festplatte zu. Um unsere Messungen nachvollziehen zu können, müssen
- Sie DOS ohne irgendwelche Cacheprogramme und nur mit den unbedingt
- notwendigen Treibern booten. Wenn Sie einen SCSI-Adapter von NCR oder
- Symbios Logic einsetzen und das SDMS-BIOS Version 3 haben, brauchen
- Sie den Doscam-Treiber, ohne den die Platten nur im langsameren
- Asynchronmodus des SCSI-Busses betrieben würden.
-
- Bei EIDE-Platten hängt es vom BIOS des EIDE-Adapters ab, ob ein
- Treiber erforderlich ist. Das BIOS unseres mittlerweile etwas betagten
- Testsystems (Asus P/I-P55TP4XE) erreicht auch ohne Treiberhilfe die
- volle Performance. Bei den meisten Pentium-Pro- und
- Pentium-II-Systemen ist das jedoch anders, da das weit verbreitete
- Award-BIOS die EIDE-Schnittstelle nicht mit voller Geschwindigkeit
- ansprechen an (siehe auch unten im FAQ-Abschnitt). Wenn der Hersteller
- eines solchen Boards einen busmasterfähigen DOS-Treiber für die
- EIDE-Schnittstelle mitliefert, sollten Sie diesen installieren.
-
- In den DOS-Boxen von Windows, Windows 95/98/NT oder OS/2 liefert
- H2bench keine zuverlässigen Ergebnisse. Ebenso würden Treiber wie
- Emm386, die den Prozessor im virtuellen 8086-Modus betreiben, die
- Messungen verfälschen und sollten daher weggelassen werden.
-
- H2bench erwartet auf der Kommandozeile die Nummer der zu testenden
- Festplatte sowie Optionen, die die durchzuführenden Tests festlegen.
- Ein Aufruf ohne Parameter liefert einen kurzen Hilfstext. Alle
- Optionen müssen als Kleinbuchstaben angegeben werden; die Reihenfolge
- ist beliebig. Der wichtigste Parameter ist die Nummer der zu testenden
- Festplatte. Die erste physikalische Platte hat die Nummer 0, die
- nächste die Nummer 1 und so weiter. Gibt man auf der Kommandozeile nur
- die Plattennummer ohne Optionen an, so zeigt H2bench die Geometrie
- (Zylinder, Köpfe, Sektoren) und die Kapazität der Platte an. Wenn
- mehrere Platten im Rechner sind, empfiehlt es sich, H2bench zunächst
- einmal nur so aufzurufen, um sicherzustellen, daß man die richtige
- Platte trifft.
-
- Da H2bench unter Umgehung der Partitionierung direkt auf die Platte
- zugreift, würden beim Beschreiben der Platte alle Daten verlorengehen.
- Daher führt er alle Benchmarks normalerweise nur lesenderweise durch.
- Erst die Option "-!" aktiviert auch die Schreibmessungen. Diese
- wiederum funktionieren aus Sicherheitsgründen nur, wenn keine
- Partitionen auf der Platte sind.
-
- H2bench hat vier Komponenten: Die Messung der Interface-Transferrate,
- die Zonenmessung, die Hdbench-Messung und die Messung der mittleren
- Zugriffszeit (Seek). Die Option "-c <n>" (-c steht aus historischen
- Gründen für "Coretest") veranlaßt die Messung der
- Interface-Transferrate bei <n> % der Kapazität der Platte.
- Üblicherweise gibt man hier 0 an, da die meisten Festplatten dort am
- schnellsten sind.
-
- Die Option "-z" aktiviert die Zonenmessung, "-s" die Seek-Messung. Die
- Hdbench-Messung kombiniert Lese- und Schreibzugriffe mit verschiedenen
- Blockgrößen in einem 6 MByte großen Bereich der Platte. Die Option "-h
- <n>" veranlaßt diese Messung bei <n> % der Kapazität der Platte (die
- Leerstelle zwischen -h und <n> ist wichtig). Wir führen die
- Hdbench-Messung grundsätzlich in der schnellsten Medienzone durch, die
- bei den allermeisten Festplatten ganz außen, also bei 0 % der
- Kapazität liegt.
-
- Mit der Option "-ha" sucht sich H2bench die schnellste Medienzone
- selbst. Dazu führt das Programm zunächst die Zonenmessung durch und
- legt dann die Hdbench-Zone an Hand der ermittelten Leseraten fest. Da
- es die Schreibrate für die Wahl der schnellsten Zone nicht
- berücksichtigt, kann es in seltenen Fällen passieren, daß es die
- "falsche" Zone wählt, so zum Beispiel bei bestimmten EIDE-Platten von
- Western Digital. Bei der AC21600 bricht die Schreibrate im
- Außenbereich stark ein, der gewichtete Mittelwert beträgt nur 2,95
- MByte/s. Mißt man dagegen bei 20 % der Kapazität, wo die Schreibrate
- in Ordnung ist, so schafft sie respektable 3,39 MByte/s. Die Option
- "-a" schließlich führt alle vier Teilmessungen durch; sie entspricht
- der Kombination von "-c", "-z", "-ha" und "-s".
-
- Die Option "-w <Dateiname>" legt einen <Dateinamen> für das
- Abspeichern der Ergebnisse fest. Der angegebene Name darf keine
- Extension enthalten, da das Programm diese selbst anhängt. H2bench
- erzeugt zwei Ergebnisdateien mit den Extensions ".txt" und ".ps". Die
- Die .txt-Datei ist eine ASCII-Datei, die im vorderen Teil die
- Ergebnisse im Klartext zusammenfaßt. Der hintere Teil enthält die
- Detailergebnisse der Hdbench-Messung und der Zonenmessung. Vorsicht:
- Die Zonenmessung hat für Lesen und Schreiben jeweils bis zu 1000
- Meßpunkte. Die Ergebnisse stehen jeweils in einer eigenen Zeile, um
- die Auswertung mit anderen Programmen zu ermöglichen. Bevor Sie auf
- die Idee kommen, die .txt-Datei auszudrucken, sollten Sie mit einem
- Texteditor den hinteren Teil der Datei abschneiden, da Sie sonst über
- 30 Seiten "Zahlenmüll" zu Papier bringen.
-
- Für den Ausdruck ist die .ps-Datei gedacht. Sie enthält alle
- Meßergebnisse auf einer DIN-A4-Seite zusammengefaßt im
- PostScript-Format. Besitzer eines PostScript-Druckers können die Datei
- einfach so zum Drucker schicken, beispielsweise mit dem DOS-Befehl
-
- copy /b Dateiname.ps prn
-
- Wer über einen weniger edlen Drucker verfügt oder die Ergebnisse am
- Bildschirm betrachten möchte, kann den Freeware-Interpreter
- GhostScript beziehungsweise das Programm GhostView zur Anzeige
- benutzen. Die Programme sind für praktisch alle Betriebssysteme
- verfügbar und stehen unter anderem in der c't-Mailbox zum kostenlosen
- Download bereit.
-
- Zu Dokumentationszwecken dienen die folgenden Optionen: "-tt", gefolgt
- von der Bezeichnung der Festplatte (in Anführungszeichen), legt den
- "Titel" des Tests fest. Entsprechend gibt es "-tb" für das BIOS, "-tc"
- für die CPU, "-tm" für das Motherboard und "-ta" für den verwendeten
- (SCSI- oder EIDE-) Adapter. Da letztere Komponenten häufig
- gleichbleiben, kann man die Angaben auch in Environment-Variablen
- unterbringen, zum Beispiel per SET-Befehl in der Autoexec.bat. Die
- entsprechenden Variablen heißen H2btitle, H2bbios, H2bcpu, H2bboard
- und H2badapter und kommen dann zum Zuge, wenn auf der Kommandozeile
- keine antsprechenden Angaben vorliegen.
-
- Meist braucht man beim Test dann nur noch den Namen der Festplatte
- anzugeben. Ein typischer Aufruf lautet beispielsweise
-
- h2bench 0 -a -! -tt "Festplatte 42" -w 42
-
- Dies führt mit der ersten am Rechner angeschlossenen Festplatte alle
- Messungen durch und speichert die Ergebnisse in den beiden Dateien
- "42.txt" und "42.ps".
-
-
- Platten über 8 GByte
- ====================
-
- Ab Version 2.3 kann H2bench neuere BIOS-Funktionen (INT 13h,
- Funktionen AH=41h bis 49h) benutzen, um Platten mit mehr als 8 GByte
- anzusprechen. Bei Angabe der Option -e nutzt H2bench diese
- BIOS-Erweiterungen, falls vorhanden. Wenn sie nicht vorhanden sind
- oder nicht richtig funktionieren, erhalten Sie eine Fehlermeldung. Die
- Warnung "!!! Warnung: Blockgröße laut Phoenix-EDD-Spec 1.1
- unzulässig", die bei aktivierten BIOS-Extensions auftritt, können Sie
- getrost ignorieren, falls keine weiteren Fehler auftreten (siehe unten
- im FAQ-Abschnitt).
-
-
- Platten über 32 GByte
- =====================
-
- H2bench-Versionen vor 2.26 hatten einen Fehler, der bei Platten über
- 32 GByte zu Abstürzen oder fehlerhaften Meßergebnissen bei der
- Dauertransferrate Schreiben führen konnte. Bitte verwenden Sie die
- alten Versionen nicht mehr und löschen Sie sie. Wenn Sie irgendwo eine
- veraltete H2bench-Version entdecken, informieren Sie bitte den
- Besitzer oder Anbieter über diesen Fehler.
-
-
- Sprachoptionen
- ==============
-
- H2bench "spricht" derzeit drei Sprachen: Deutsch, Englisch und
- Holländisch. Die Kommandozeilenoption "-deutsch" wählt deutsche Texte,
- die Option "-english" englische und die option "-nederlands"
- holländische.
-
- Über die Environment-Variable H2BLANGUAGE läßt sich die Sprache
- voreinstellen, um sich die Angabe der entsprechenden
- Kommandozeilenoption zu ersparen. Zweckmäßigerweise setzt man sie über
- eine SET-Anweisung in der Datei Autoexec.bat. Beispiele:
-
- SET H2BLANGUAGE=deutsch für Deutsch
-
- SET H2BLANGUAGE=english für Englisch
-
- SET H2BLANGUAGE=nederlands für Holländisch
-
-
- Fragen
- ======
-
- Fragen zu H2bench richten Sie bitte per EMail (in deutscher oder
- englischer Sprache) an bo@ct.heise.de. Ich werde mir erlauben, Fragen,
- die in den untenstehenden FAQ beantwortet sind, zu ignorieren.
-
-
- FAQ:
- ====
-
- ? Der Benchmark H2bench bricht immer mit einem Lesefehler ab.
-
- : Wenn physikalische Defekte vorliegen, kann die aktuelle Version von
- H2bench die Dauertransferraten nicht messen. Mit der Option "-h x"
- können Sie aber immerhin noch die Hdbench-Messung in einem intakten
- Bereich der Platte durchführen.
-
-
- ? Beim Aufruf des Festplatten-Benchmarks H2bench erhalte ich immer
- die Fehlermeldung, daß der Timer nicht monoton laufe, und das
- Programm bricht ab.
-
- : H2bench liest den Timer direkt aus, um mikrosekundengenaue
- Zeitmessungen durchführen zu können. Bei manchen Chipsätzen ist
- der Systemtimer fehlerhaft: die hinteren Bits "hoppeln" und laufen
- nicht immer monoton. Betroffen ist zum Beispiel der I/O-Baustein
- 82378IB des Mercury/Neptun-Chipsatzes. Siehe dazu auch c't 10/95,
- S. 334.
-
- Das verfälscht natürlich die Zeitmessungen, weswegen H2bench
- zunächst den Timer überprüft. Mit der Option "-Tnocheck" können Sie
- die Überprüfung des Timers unterdrücken, nicht aber den Bug.
- H2bench müßte dann zwar im großen und ganzen auch richtige Werte
- liefern, aber verlassen kann man sich darauf nicht. Wunden Sie sich
- daher nicht, wenn Sie ab und zu mal einen negativen Wert in der
- Hdbench-Messung erhalten.
-
-
- ? Bei Angabe der Option "-e" erhalte ich die Meldung "!!! Warnung:
- Blockgröße laut Phoenix-EDD-Spec 1.1 unzulässig".
-
- : Die Bios-Extensions, die H2bench benutzt, wurden von Phoenix
- spezifiziert. In dieser Spezifikation steht, daß man mit einem
- Aufruf maximal 127 Sektoren gleichzeitig übertragen darf. H2bench
- arbeitet jedoch bei der Zonenmessung mit einer Blockgröße von 128
- Sektoren, was mit den bisher zum Test benutzten SCSI-Adaptern von
- Symbios Logic und Adaptec und dem Promise Ultra33 auch einwandfrei
- funktioniert. Die von H2bench ausgegebene Warnmeldung soll auf
- diesen Sachverhalt hinweisen. Es gibt Adapter (z.B. Promise
- FastTrack), deren BIOS sich genau nach Spezifikation verhält und
- Transfers von 128 Sektoren verweigert. Auf solchen Adaptern
- funktionieren dann Zonenmessung und die Messung der
- Interface-Transferrate nicht, wenn die Option -e benutzt wird.
-
-
- ? Ich kann Ihre Messungen nicht nachvollziehen: Mit meiner
- SCSI-Platte erhalte ich wesentlich niedrigere
- Datenübertragungsraten beim Schreiben als Sie.
-
- : Wir schalten bei SCSI-Platten für unsere Messungen grundsätzlich
- den Schreibcache ein. Ohne diesen erzielen die Platten beim
- Schreiben nur die halbe Übertragungsrate wie beim Lesen. Von
- Seagate gibt es dazu ein kleines Programm, das auch mit Festplatten
- anderer Hersteller funktioniert, vorausgesetzt, Sie benutzen einen
- ASPI-Treiber. Sie finden es auf
- http://www.heise.de/ct/ftp/spezial.shtml oder in der c't-Mailbox
- unter dem Namen Aspiid15.zip. SCSI-Platten merken sich die
- Einstellung für den Schreibcache dauerhaft -- es genügt also, ihn
- einmal mit diesem Programm einzuschalten.
-
-
- ? Ich habe Version 2.15 und Version 2.3 von H2bench. Welche ist
- neuer?
-
- : Die Nummer nach dem Punkt ist nicht als Dezimalbruch sondern als
- fortlaufende Nummer zu verstehen. Nach 2.9 kam also 2.10 (zwei
- punkt zehn), danach 2.11 und so weiter. Die am 20. Januar 1999
- aktuelle Version hat die Nummer 2.26.
-
-
- ? Meine Festplatte erzielt an der Onboard-EIDE-Schnittstelle meines
- Pentium-II-Boards eine maximale Übertragungsrate von etwa 7
- MByte/s, obwohl sie laut c't-Testbericht wesentlich schneller sein
- sollte. An einem älteren Pentium-System bringt sie dagegen die
- volle Leistung.
-
- : Der Bremsklotz ist die IDE-Schnittstelle Ihres Boards, genauer
- gesagt das BIOS. Neben dem klassischen PIO-Mode (Programmed I/O,
- die CPU holt jedes Datenwort einzeln von der Schnittstelle ab und
- schreibt es in den Speicher) können die Onboard-IDE-Schnittstellen
- gängiger Boards auch als PCI-Busmaster arbeiten und direkt auf den
- Hauptspeicher zugreifen. Diese Betriebsart ist vor allem für
- multitaskingfähige Betriebssysteme sinnvoll, da sie die CPU
- entlastet: Während die IDE-Schnittstelle Daten überträgt, kann sich
- der Prozessor mit anderen Dingen beschäftigen.
-
- Bei allen bisher verfügbaren Pentium-Pro- und Pentium-II-Chipsätzen
- ist die IDE-Schnittstelle im PIO-Betrieb deutlich langsamer als mit
- Busmastering. Dummerweise haben sich die Programmierer des weit
- verbreiteten Award-BIOS jedoch nicht die Mühe gemacht, Busmastering
- zu implementieren. Selbst Ultra-DMA-fähige IDE-Platten betreibt das
- Award-BIOS im PIO-Mode, obwohl es beim Booten "UDMA" meldet. Nur
- bei einigen wenigen Boards, deren BIOS von einem anderen Hersteller
- stammt, erreicht die IDE-Schnittstelle ohne Treiber die volle
- Leistung.
-
- Dieser Mangel des Award-BIOS wirkt sich nur auf DOS beziehungsweise
- DOS-basierte Benchmarks wie H2bench aus. Andere Betriebssysteme
- umgehen das BIOS und greifen über eigene Treiber auf die Festplatte
- zu. Wenn diese Treiber Busmastering nutzen, sind keine
- Geschwindigkeitseinbußen zu befürchten. Informationen rund um
- Busmastering sowie Treiber finden Sie auf http://www.bmdrivers.com.
-
- Die Firma Triones vertreibt einen busmasterfähigen DOS-Treiber für
- den LX- oder BX-Chipsatz. Manche Boardhersteller (z.B. Gigabyte)
- legen diesen Treiber ihren Boards bei. Mit ihm erzielt H2bench die
- volle Performance. Ohne einen solchen Treiber eignen sich LX- oder
- BX-Boards mit Award-BIOS bis auf weiteres nicht für
- Performancemessungen mit H2bench.
-
-
- ? Meine Festplatte erzielt am Asus P/I-P55TP4XE nur eine
- Dauertransferrate von ca. 6,3 MByte/s, obwohl sie laut
- c't-Testbericht wesentlich schneller sein sollte. Inzwischen habe
- ich die Platte ein paar Tage benutzt und die Messung wiederholt,
- und siehe da: jetzt erreicht sie plötzlich die volle Leistung. Wie
- kann das sein?
-
- : Das kann am BIOS liegen. Manche BIOS-Versionen, wie zum Beispiel
- die Version 0203 für das Asus P/I-P55TP4XE, verhalten sich mit
- jungfräulichen beziehungsweise durch H2bench gelöschten Festplatten
- anders als mit solchen, die schon einmal partitioniert waren. Die
- Ursache liegt in einem Algorithmus, den die BIOS-Entwickler für den
- Fall erfunden haben, daß der Anwender die Onboard-IDE-Schnittstelle
- abschaltet und einen anderen IDE-Adapter verwendet.
-
- Das BIOS versucht zunächst herauszufinden, ob der IDE-Adapter mit
- 32-Bit-Zugriffen zurechtkommt. Dazu liest es den ersten Sektor der
- Festplatte, den Master Boot Record, zunächst mit 16-Bit-Zugriffen
- ein. Wenn dieser eine gültige Partitionstabelle enthält (zu
- erkennen an der Signatur 0aa55h in den letzen beiden Bytes), liest
- es anschließend denselben Sektor mit 32-Bit-Zugriffen ein und
- überprüft, ob der Inhalt identisch ist. Nur wenn das der Fall ist,
- arbeitet es fortan mit 32-Bit-Zugriffen. Enthält die
- Partitionstabelle dagegen von vornherein ungültige Daten, so bleibt
- das BIOS vorsichtshalber bei den mit jedem IDE-Adapter kompatiblen
- 16-Bit-Zugriffen, was die Übertragungsrate auf 6 bis 7 MByte/s
- begrenzt.
-
- Führen Sie daher sicherheitshalber vor der Messung mit H2bench den
- Befehl 'Fdisk /mbr' aus, um die für das BIOS erforderliche Signatur
- in den Master Boot Record schreiben. Nach einem Neustart läuft die
- IDE-Schnittstelle dann garantiert in der schnelleren
- 32-Bit-Betriebsart.
-