H2bench -- by Harald B”geholz / c't Magazin fr 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, mssen 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 wrden. 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 fr 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 wrden 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 durchzufhrenden Tests festlegen. Ein Aufruf ohne Parameter liefert einen kurzen Hilfstext. Alle Optionen mssen 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, wrden beim Beschreiben der Platte alle Daten verlorengehen. Daher fhrt er alle Benchmarks normalerweise nur lesenderweise durch. Erst die Option "-!" aktiviert auch die Schreibmessungen. Diese wiederum funktionieren aus Sicherheitsgrnden 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 " (-c steht aus historischen Grnden fr "Coretest") veranlaát die Messung der Interface-Transferrate bei % 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 " veranlaát diese Messung bei % der Kapazit„t der Platte (die Leerstelle zwischen -h und ist wichtig). Wir fhren 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 fhrt das Programm zun„chst die Zonenmessung durch und legt dann die Hdbench-Zone an Hand der ermittelten Leseraten fest. Da es die Schreibrate fr die Wahl der schnellsten Zone nicht bercksichtigt, 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 fhrt alle vier Teilmessungen durch; sie entspricht der Kombination von "-c", "-z", "-ha" und "-s". Die Option "-w " legt einen fr 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 fr 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 "Zahlenmll" zu Papier bringen. Fr 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 verfgt oder die Ergebnisse am Bildschirm betrachten m”chte, kann den Freeware-Interpreter GhostScript beziehungsweise das Programm GhostView zur Anzeige benutzen. Die Programme sind fr praktisch alle Betriebssysteme verfgbar 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 Anfhrungszeichen), legt den "Titel" des Tests fest. Entsprechend gibt es "-tb" fr das BIOS, "-tc" fr die CPU, "-tm" fr das Motherboard und "-ta" fr 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 fhrt 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 Abstrzen oder fehlerhaften Meáergebnissen bei der Dauertransferrate Schreiben fhren 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 fr Deutsch SET H2BLANGUAGE=english fr Englisch SET H2BLANGUAGE=nederlands fr 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 durchfhren. ? 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 durchfhren 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 natrlich die Zeitmessungen, weswegen H2bench zun„chst den Timer berprft. Mit der Option "-Tnocheck" k”nnen Sie die šberprfung des Timers unterdrcken, 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 Datenbertragungsraten beim Schreiben als Sie. : Wir schalten bei SCSI-Platten fr 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 fr den Schreibcache dauerhaft -- es gengt 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 fr 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 verfgbaren 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 Mhe 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 befrchten. Informationen rund um Busmastering sowie Treiber finden Sie auf http://www.bmdrivers.com. Die Firma Triones vertreibt einen busmasterf„higen DOS-Treiber fr 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 fr 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 fr 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 fr 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 gltige 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 berprft, 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 ungltige 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. Fhren Sie daher sicherheitshalber vor der Messung mit H2bench den Befehl 'Fdisk /mbr' aus, um die fr 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.