H2benchw -- by Harald Bgeholz / c't Magazin fr Computertechnik
Copyright (C) 2010 Heise Zeitschriften Verlag GmbH & Co. KG
==============================================================================


H2benchw luft als Konsolenanwendung (auf der Kommandozeile) unter
Windows NT bis Windows 7. Es greift direkt auf die Festplatte
zu, indem es sie als Physical Device ffnet und bentigt daher
Administratorrechte. Um nachvollziehbare Ergebnisse zu erhalten,
sollten Sie keine anderen Windows-Anwendungen laufen lassen und den
Rechner whrend der Messung nicht anrhren. (Sicherheitshalber erhht
der Benchmark seine Prozessprioritt auf das maximal Mgliche.)

H2benchw 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 physische Platte hat die Nummer 0, die nchste
die Nummer 1 und so weiter. Gibt man auf der Kommandozeile nur die
Plattennummer ohne Optionen an, so zeigt H2benchw die Kapazitt und
die vom Betriebssystem gemeldete logische Geometrie (CHS-Angabe,
Zylinder, Kpfe, Sektoren) der Platte an. Bei IDE-Platten erfhrt man
auerdem Typenbezeichnung, Seriennummer und Firmware-Version. Wenn
mehrere Platten im Rechner sind, empfiehlt es sich, H2benchw zunchst
einmal nur so aufzurufen, um sicherzustellen, dass man die richtige
Platte trifft.

Da H2benchw 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.

H2benchw hat vier Komponenten: die Messung der Interface-Transferrate,
ein Test der Datenintegritt, die Zonenmessung, und die Messung der
mittleren Zugriffszeit (Seek).

Die Option "-c <n>" (-c steht aus historischen Grnden fr "Coretest")
veranlasst die Messung der Interface-Transferrate bei <n> % der
Kapazitt der Platte. blicherweise gibt man hier 0 an, da die meisten
Festplatten dort am schnellsten sind.

Die Option "-d <n>" testet die Datenintegritt, wobei die ersten <n>
Sektoren der Platte vollstndig geprft werden, der Rest nur
stichprobenartig. Statt einer Zahl darf auch das Wort "max" stehen,
dann testet H2bench die gesamte Platte. Mehr dazu im unten stehenden
Abschnitt "Test der Datenintegritt".

Die Option "-z" aktiviert die Zonenmessung.

Die Option "-s" aktiviert die Seek-Messung.

Die Option "-a" schlielich fhrt alle Teilmessungen durch; sie
entspricht der Kombination von "-c", "-z" und "-s" sowie "-d 20480",
falls -! angegeben.

Die Option "-w <Dateiname>" legt einen <Dateinamen> fr das
Abspeichern der Ergebnisse fest. H2benchw hngt daran die
Erweiterungen ".txt" und ".ps" an und erzeugt zwei Ergebnisdateien.
Die .txt-Datei ist eine ASCII-Datei, die im vorderen Teil die
Ergebnisse im Klartext zusammenfasst. Der hintere Teil enthlt die
Detailergebnisse der Zonenmessung. VORSICHT: Die Zonenmessung hat fr
Lesen und Schreiben jeweils bis zu 1000 Messpunkte. Die Ergebnisse
stehen jeweils in einer eigenen Zeile, um die Auswertung mit anderen
Programmen zu ermglichen. 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 enthlt alle
Messergebnisse auf einer DIN-A4-Seite zusammengefasst im
PostScript-Format und lsst sich beispielsweise mit GhostScript
anzeigen.

Zu Dokumentationszwecken dienen die folgenden Optionen: "-tt", gefolgt
von der Bezeichnung der Festplatte (in Anfhrungszeichen), legt den
"Titel" des Tests fest, "-ts" ist fr zustzliche Angaben wie das
Speichermedium bei Wechselmedien vorgesehen. Entsprechend gibt es
"-tb" fr das BIOS, "-tc" fr die CPU, "-tm" fr das Motherboard,
"-ta" fr den verwendeten (SCSI- oder EIDE-) Adapter. Da letztere
Komponenten hufig gleichbleiben, kann man die Angaben auch in
Environment-Variablen unterbringen, zum Beispiel per SET-Befehl ber
eine Batchdatei oder unter XP in der Systemsteuerung unter
System->Erweitert->Umgebungsvariablen. Die entsprechenden Variablen
heien H2BTITLE, H2BMEDIUM, 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

h2benchw 1 -a -! -tt "Festplatte 42" -w 42

Dies fhrt mit der zweiten am Rechner angeschlossenen Festplatte alle
Messungen durch und speichert die Ergebnisse in den beiden Dateien
"42.txt" und "42.ps".


Test der Datenintegritt
========================

H2benchw ist ursprnglich ein reiner Benchmark, der nur berprft, wie
schnell Daten gelesen und geschrieben werden, aber nicht, ob dies auch
fehlerfrei erfolgt. Anlsslich der berschreitung der 128-GByte-Grenze
bei IDE-Platten ist ein Test der Datenintegritt hinzugekommen (Option
-d <n>). Dieser arbeitet wie folgt:

Zunchst schreibt er in die ersten <n> Sektoren der Platte bestimmte
Testmuster (alle verschieden!). Die Voreinstellung fr <n> ist 20480
Sektoren (= 10 MByte). Statt <n> darf auch "max" fr die gesamte
Kapazitt angegeben werden. Anschlieend schreibt H2bench jeweils fnf
Sektoren in der Umgebung aller LBAs, die eine Zweierpotenz sind (dies
sind bei Treiberbugs oft die kritischen Adressen). Schlielich
schreibt der Test noch eine gewisse Zeit lang (Voreinstellung: 10
Sekunden) eine pseudo-zufllige Folge von Sektoren. Die Dauer dieser
letzten Phase lsst sich mit der Option -dt <s> verndern, wobei der
Zahlenwert <s> die Dauer in Sekunden angibt.

Nach einer kurzen Verschnaufpause liest H2bench alle zuvor
geschriebenen Testdaten wieder ein und berprft sie. Wenn dabei ein
Fehler auftritt, bricht er ab und gibt Ort des Fehlers, Soll- und
Istwert aus. Die Testdaten sind so beschaffen, dass im ersten Dword
(Offset 0) eines jeden Sektors dessen LBA steht. Wenn hier bei der
berprfung ein Fehler entdeckt wird, bedeutet dies sehr
wahrscheinlich, dass ein Sektor an die falsche Adresse geschrieben
wurde, und man kann anhand des Ist-Wertes erkennen, welcher dies war.

ACHTUNG: Wenn man den Integrittstest ohne die Option -!, also nur
lesenderweise aufruft, muss natrlich zuvor die entsprechende Menge
Testdaten geschrieben worden sein, sonst erhlt man eine
Fehlermeldung.


Sprachoptionen
==============

H2benchw "spricht" derzeit drei Sprachen: Deutsch, Englisch und
Niederlndisch. Die Kommandozeilenoption "-deutsch" whlt deutsche
Texte, die Option "-english" englische und die option "-nederlands"
niederlndische.

ber die Environment-Variable H2BLANGUAGE lsst sich die Sprache
voreinstellen, um sich die Angabe der entsprechenden
Kommandozeilenoption zu ersparen. Zweckmigerweise setzt man sie in
der Systemsteuerung. Beispiele:

SET H2BLANGUAGE=deutsch     fr Deutsch

SET H2BLANGUAGE=english     fr Englisch

SET H2BLANGUAGE=nederlands  fr Niederlndisch


Bekannte Einschrnkungen
========================

Auf manchen lteren Mehrprozessor- oder Dual-Core-Systemen hat
H2benchw Probleme mit der Zeitmessung. Bei Zweifeln an der Korrektheit
der Ergebnisse sollte man die Messung auf einem Einprozessorsystem
wiederholen.


Fragen
======

Fragen zu H2benchw richten Sie bitte per E-Mail (in deutscher oder
englischer Sprache) an bo@ct.de (Harald Bgeholz). 


FAQ:
====

?  Der Benchmark H2benchw bricht immer mit einem Lesefehler ab.

:  Wenn physische Defekte vorliegen, kann die aktuelle Version von
   H2benchw die Dauertransferraten nicht messen. Mit etwas Glck
   funktioniert aber eine der anderen Messungen noch, wenn sie den
   defekten Sektor zufllig nicht trifft.


?  Beim Aufruf des Festplatten-Benchmarks H2benchw erhalte ich immer
   die Fehlermeldung, dass der Timer nicht monoton laufe, und das
   Programm bricht ab.

:  Bei manchen Chipstzen arbeitet der Systemtimer fehlerhaft: Die
   unteren Bits "hoppeln", sodass es gelegentlich den Anschein hat als
   laufe die Zeit rckwrts. H2bench berprft daher zu Beginn die
   Zuverlssigkeit des Timers. 

   Die genannte Fehlermeldung wurde bisher unter Windows 2000
   beobachtet, NT und XP scheinen die Fehler zu kompensieren. Wenn Sie
   diese Fehlermeldung unter Windows XP erhalten, wre ich fr eine
   E-Mail mit einer genauen Beschreibung des Systems dankbar an
   bo@ct.de.

   Einstweilen knnen Sie mit der Option "-Tnocheck" die
   Timerberprfung unterdrcken, nicht aber das von ihr festgestellte
   Problem! H2benchw msste dann zwar im groen und ganzen auch
   richtige Werte liefern, aber verlassen kann man sich darauf nicht.


?  Ich habe Version 2.15 und Version 2.3 von H2benchw. 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 aktuelle Version hat
   die Nummer 3.16.


?  Warum gibt H2bench bei meinem IDE-RAID-Array nicht die
   Typenbezeichnungen und Seriennummern der Festplatten aus?

:  Das Auslesen des ATA-Konfigurationssektors ist momentan nur fr
   einzelne IDE-Platten implementiert. Auf manchen Hostadaptern
   funktioniert es auch fr Einzelplatten nicht, sorry.
