home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1999 June
/
PCWorld_1999-06_cd.bin
/
Hardware
/
Drivers
/
h2bench
/
LIESMICH.TXT
< prev
next >
Wrap
Text File
|
1999-01-20
|
16KB
|
328 lines
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.