home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 1999 June
/
PCWorld_1999-06_cd.bin
/
Hardware
/
Drivers
/
h2bench
/
LEESMIJ.TXT
< prev
next >
Wrap
Text File
|
1999-01-20
|
16KB
|
318 lines
H2bench -- by Harald Boegeholz / c't magazin voor computertechniek
Copyright (C) 1999 Verlag Heinz Heise GmbH
==================================================================
H2bench werkt onder DOS en benadert de harde schijf direct via de
BIOS. Om onze metingen te kunnen verifiëren moet je DOS zonder
eventuele schijf-cache programma's en alleen met de hoogst
noodzakelijke drivers booten. Als je een SCSI-Adapter van NCR of
Symbios Logic gebruikt en de SDMS-BIOS versie 3 hebt, is de
Doscam-driver nodig; zonder deze werkt de harde schijf alleen maar in
de langzamere a-synchrone SCSI-busmode.
Bij EIDE-schijven hangt het van het BIOS van de EIDE-adapter af, of er
een driver nodig is. Het BIOS van ons inmiddels enigszins verouderd
testsysteem (Asus P/I-P55TP4XE) haalt ook zonder driverhulp de
volledige performance. Bij de meeste Pentium-Pro- en
Pentium-II-systemen is dat echter anders, omdat het veel gebruikte
Award-BIOS de EIDE-interface niet met volledige snelheid kan
aanspreken (zie ook onder bij FAQ). Als de fabrikant van zo'n board
een DOS-driver voor de EIDE-interface bijlevert die geschikt is voor
de busmaster, kun je deze het best installeren.
In een DOS-box van Windows, Windows 95/98/NT of OS/2 zijn de
meetresultaten van H2bench niet betrouwbaar. Ook drivers zoals Emm386,
die de processor omschakelen in de virtuele 8086-modus, zorgen voor
foutieve meetresultaten en moeten dus niet worden geladen.
H2bench verwacht het nummer van de te testen schijf als parameter op
de commandoregel samen met schakelopties die aangeven welke tests er
moet worden uitgevoerd. Wanneer er geen parameter is opgegeven
presenteert het programma een korte helptekst. Alle opties moeten in
onderkast ('kleine' letters) worden opgegeven; de volgorde is
willekeurig. De belangrijkste parameter is het nummer van de te testen
schijf. De eerste fysieke schijf is nummer 0, de volgende 1
enzovoorts. Indien alleen het schijfnummer wordt opgegeven, zonder
opties, dan geeft H2bench de schijfparameters (cilinders, koppen,
sectoren) en de totale capaciteit van de schijf weer. Indien er
verscheidene schijven in het systeem aanwezig zijn, is het verstandig
om H2bench in eerste instantie op deze manier aan te roepen zodat u
zich kunt vergewissen dat de juiste schijf wordt getest.
Omdat H2bench de partitioneringsgegevens negeert en direct de schijf
benadert zouden bij schrijven naar de schijf alle gegevens verloren
gaan. Daarom wordt tijdens de benchmark normaliter alleen gelezen. Met
de optie '-!' worden ook de schrijfmetingen geactiveerd. Deze
functioneren -- uit veiligheidsoverwegingen -- echter alleen indien er
geen partities op de schijf zijn gedefinieerd.
H2bench bestaat uit vier delen: De meting van de
interface-transferrate (overdrachtssnelheid van de interface),
zonemeting, Hdbench-meting en de meting van de gemiddelde toegangstijd
(seek). De optie '-c <n>' (-c betekent, om historische redenen,
'Coretest') zorgt ervoor dat de meting van de interface-transferrate
gebeurt bij <n> % van de schijfcapaciteit. Normaal gesproken wordt
hier 0 ingevuld, omdat de meeste schijven daar het snelste zijn.
De optie '-z' activeert de zonemeting, '-s' de seek-meting
(toegangstijd), De Hdbench-meting combineert lees- en schrijfacties
met verschillende blokgroottes binnen een gebied op de schijf ter
grote van 6 MByte. Met de optie '-h <n>' wordt deze meting uitgevoerd
ter hoogte van <n> % van de schijfcapaciteit (de spatie tussen '-h' en
'<n>' is belangrijk). Wij voeren de Hdbench-meting altijd in de
snelste zone uit, die bij verreweg de meeste schijven helemaal
buitenaan ligt; dus ter hoogte van 0% schijfcapaciteit.
Met de optie '-ha' zoekt H2bench zelf de snelste zone op. Hiertoe
voert het programma eerst een zonemeting uit en bepaalt dan de
Hdbench-zone aan hand van de gemeten leessnelheden. Omdat bij het
bepalen van de snelste zone geen rekening wordt gehouden met de
schrijfsnelheid kan het, in uitzonderlijke gevallen, voorkomen dat de
verkeerde zone wordt gekozen. Bijvoorbeeld bij bepaalde EIDE-schijven
van Western Digital, zoals de AC21600, stort de schrijf-performance in
het buitenste deel van de schijf behoorlijk in elkaar. Het gewogen
gemiddelde bedraagt daar slechts 2,95 MB/s. Wordt daarentegen gemeten
op 20% van de schijfcapaciteit (waar de schrijfsnelheid nog in orde
is), haalt de schijf een respectabele 3,39 MB/s. De optie '-a' tot
slot, zorgt ervoor dat alle vier de metingen worden uitgevoerd; dit
komt overeen met de combinatie van '-c', '-z', '-ha' en '-s'.
Doormiddel van de optie '-w <bestandsnaam>' wordt een <bestandsnaam>
opgegeven voor het opslaan van de resultaten. De opgegeven naam mag
niet van een extensie zijn voorzien, aangezien het programma deze zelf
toevoegt. H2bench maakt twee resultaatbestanden aan met de extensies
'.txt' en '.ps'. Het .txt-bestand is een ASCII-bestand dat begint met
een samenvatting van de meetresultaten waarna de gedetailleerde meet-
gegevens van de Hdbench- en zonemetingen volgen. Let op: de zonemeting
heeft voor zowel lezen als schrijven tot 1000 meetpunten. De
resultaten hiervan staan steeds op een aparte regel, om het inlezen
met andere programma's te vereenvoudigen. Mocht u op het idee komen om
het .txt-bestand af te drukken, denk er dan aan om het onderste deel
van het bestand met een editor te verwijderen, anders komen er dertig
pagina's 'getalletjes' uit de printer rollen.
Voor het maken van afdrukken is het .ps-bestand bedoeld. Hierin zijn
-- in PostScript-formaat -- alle meetresulaten samengevat op één
kantje A4. Wie een PostScript-printer heeft kan het bestand direct
naar de printer sturen, bijvoorbeeld met de DOS-opdracht
copy /b bestandsnaam.ps prn
Wie over een minder edele printer beschikt, of de resultaten op het
beeldscherm weer wil geven, kan de freeware-interpreter Ghostscript
respectievelijk het programma Ghostview gebruiken. Deze programma's,
die voor vrijwel alle besturingssystemen beschikbaar zijn kunt u
gratis via het internet downloaden.
Ter documentatie kunnen de volgende opties gebruikt worden: '-tt' met
daarachter de beschrijving van de harddisk (tussen aanhalingstekens),
voor de 'titel' van de test. Op analoge wijze dienen '-tb' voor de
BIOS, '-tc' voor de CPU, '-tm' voor het moederbord, '-ta' voor de
(SCSI- of EIDE-) adapter. Aangezien deze componenten over het algemeen
gelijk blijven, kunnen hun omschrijvingen ook, met het SET-commando in
autoexec.bat, in omgevingsvariabelen (environment) worden opgeslagen.
De variabelen heten respectivelijk H2btitle, H2bbios, H2bcpu, H2bboard
en H2badapter en worden gebruikt indien de overeenkomstige opties niet
op de commandoregel zijn gespecificeerd.
Meestal hoef je dan tijdens het starten van de test dan alleen nog
maar de omschrijving van de harddisk op te geven, bijvoorbeeld zo:
h2bench 0 -a -! -tt "Harddisk 42" -w 42
Deze opdracht zorgt ervoor dat op de eerste fysieke harddisk alle
tests worden doorlopen en dat de resultaten worden opgeslagen in de
bestanden '42.txt' en '42.ps'.
Schijven groter dan 8 GByte
===========================
Vanaf versie 2.3 kan H2bench ook de nieuwe BIOS-functies (INT 13h,
functies AH=41h tot 49h) gebruiken om schijven groter dan 8 Gbyte aan
te sturen. De optie '-e' zorgt ervoor dat H2bench deze BIOS-extensies,
indien beschikbaar, gebruikt. Indien de functies niet worden
ondersteund, of niet correct werken, krijgt u een foutmelding. De
waarschuwing "!!! Waarschuwing: blokgrootte is in conflict met de
Phoenix EDD specificatie 1.1", die bij geactiveerde BIOS-Extensies
optreed, kunt u gerust negeren mits er geen verdere foutmeldingen
optreden (zie onder in het FAQ-gedeelte).
Schijven groter dan 32 GByte
============================
De H2bench versie voor 2.26 had en fout: bij hardeschijven groter dan
32 GB leide dit tot vastlopers of tot mogelijk onjuiste meetgegevens
van de schrijf-datatransfersnelheid. Gebruikt u s.v.p.de oude versie
niet meer: gooi hem gewoon weg. Als u ergens een verouderde H2bench
versie ziet, informeer dan s.v.p. de gebruiker over het bestaan van
deze fout.
Taalopties
==========
H2bench ondersteund op dit moment drie talen: Nederlands, Engels en
Duits. De commandoregel optie "-nederlands" kiest de Nederlandse taal,
"-english" de Engelse taal en "-deutsch" de Duitse. Via de
environment-variabele H2BLANGUAGE kan de taal van tevoren ingesteld
worden. Daardoor is het niet meer nodig om de taal met de hand in te
stellen. Dit gebeurt via het set-commando in het autoexec.bat
SET H2BLANGUAGE=nederlands voor Nederlands
SET H2BLANGUAGE=english voor English
SET H2BLANGUAGE=deutsch voor Duits
Vragen
======
Vragen met betrekking tot H2bench kunt u per e-mail richten aan
bo@ct.heise.de (in het Duits of het Engels).
FAQ:
====
? De benchmark H2bench stopt steeds voortijdig met een schrijffout.
: Indien de schijf fysiek beschadigd is kan de huidige versie van
H2bench de duur-transferrate (langdurig haalbare
overdrachtssnelheid) niet meten. Met de optie '-h <n>' (zie
handleiding) kan in elk geval de Hdbench-meting op een onbeschadigd
deel van de schijf worden uitgevoerd.
? Bij het starten van H2bench krijg ik steeds de foutmelding dat de
timer niet 'monotoon' loopt, en het programma stopt.
: H2bench leest rechtstreeks de waarde van de timer om tot op de
microseconde nauwkeurig te kunnen meten. Bij sommige chipsets is de
systeemtimer echter een beetje 'buggy'; de laatste bits 'hobbelen'
en tellen niet altijd monotoon door. Dit is bijvoorbeeld het geval
bij de I/O-chip 82378/B van de Mercury/Neptune-chipsets.
Dat heeft natuurlijk foutieve meetresultaten tot gevolg en daarom
test H2bench eerst de timer. Met de opie '-Tnocheck' kunt u het
testen van de timer uitschakelen, niet de bug. H2bench meet dan
welliswaar in grote lijnen correcte waarden, maar u moet niet
verbaasd zijn als er tussen de meetwaarden af en toe negatieve
getallen opduiken.
? Bij het gebruik van de optie '-e' krijg ik de melding "!!!
Waarschuwing: blokgrootte is in conflict met de Phoenix EDD
specificatie 1.1\n!!!"
: De BIOS-extensies die H2bench gebruikt zijn door Phoenix
gespecificeerd. In de specificatie staat dat je met één aanroep
maximaal 127 sectoren tegelijk mag overdragen. H2bench werkt echter
bij de zonemeting met een blokgrootte van 128 sectoren, hetgeen bij
de tot nu toe gebruikte SCSI-adapters van Symbios Logic en Adaptec
en met de Promise Ultra33 probleemloos ging. Met de waarschuwing
wil H2bench u hierop wijzen. Er zijn adapters (zoals de Promise
FastTrack) die exact de specificatie volgen en dus een overdracht
van 128 sectoren weigeren. Op zulke adapters werkt de zonemeting en
de meting van de interface-transferrate niet.
? Ik kan uw metingen niet bevestigen: met mijn SCSI-schijf meet ik
belangrijk lagere waarden voor de schrijfsnelheid dan u.
: Wij schakelen voor onze metingen bij SCSI-schijven principieel de
schrijfcache in (op de diskdrive). Zonder deze cache halen de
schijven bij het schrijven slechts de halve overdrachtssnelheid ten
opzichte van het lezen. Er is hiervoor een klein programma'tje van
Seagate dat ook op schijven van andere makkelijk werkt mits u een
ASPI-driver gebruikt. Het staat op de c't website onder de naam
Aspiid15.zip (ftp.fnl.nl/pub). SCSI-schijven onthouden deze
instelling voor de schrijfcache langdurig zodat het programma maar
één keer gebruikt hoeft te worden.
? Ik heb versie 2.15 en 2.3 van H2bech. Welke is de nieuwste?
: Het nummer na de punt geeft geen tiendes, maar een oplopend versie
nummer weer. Na 2.9 komt dus 2.10, daarna 2.11 enzovoorts. De
Huidige versie van 20.01.1999 heeft nummer 2.26.
? Mijn harddisk haalt op de onboard-EIDE-interface van mijn
Pentium-II-board een maximale transferrate van ongeveer 7 MB/s,
hoewel hij volgens het c't-testbericht heel wat sneller zou moeten
zijn. Op een ouder Pentium-systeem haalt hij echter de volledige
performance.
: De remmende factor is de IDE-interface van uw board, om
nauwkeuriger te zijn het BIOS. Naast de klassieke PIO-mode
(Programmed I/O, de CPU haalt ieder gegevenswoord apart bij de
interface af en schrijft het naar het geheugen) kunnen de
onboard-IDE-interfaces van gangbare boards ook als PCI-busmaster
werken en direct het hoofdgeheugen benaderen. Deze bedrijfsmodus is
vooral zinvol voor besturingssystemen die tot multitasking in staat
zijn, omdat het de CPU ontlast: terwijl de IDE-interface gegevens
verstuurt, kan de processor zich met andere zaken bezighouden.
De IDE-interface is in de PIO-modus bij alle tot nu toe beschikbare
Pentium-Pro- en Pentium-II-chipsets duidelijk langzamer dan met
busmastering. Helaas hebben de programmeurs van het veel gebruikte
Award-BIOS niet de moeite genomen om busmastering te implementeren.
Zelfs IDE-schijven die Ultra-DMA kunnen gebruiken worden door het
Award-BIOS in de PIO-modus aangestuurd, hoewel het tijdens het
booten 'UDMA' meldt. Alleen bij een paar boards, waarvan de BIOS
van een andere fabrikant afkomstig is, behaalt de IDE-interface
zonder driver de volledige performance.
Dit manco van de Award-BIOS heeft alleen effect op DOS
respectievelijk op DOS gebaseerde benchmarks zoals H2bench. Andere
besturingssystemen omzeilen het BIOS en benaderen de harddisk via
hun eigen drivers. Als deze drivers van busmastering gebruik maken
hoef je niet bang te zijn dat de snelheid erop achteruit gaat.
Informatie over busmastering en drivers vindt u op
http://www.bmdrivers.com.
De firma Triones verkoopt een voor busmastering geschikte
DOS-driver voor de LX- of BX-chipset. Sommige boardfabrikanten
(b.v. Gigabyte) leveren deze driver met hun boards mee. H2bench
behaalt hiermee de volledige performance. Zonder zo'n driver zijn
LX- of BX-boards met Award-BIOS voorlopig niet geschikt voor
performancemetingen met de H2bench
? Mijn harde schijf bereikt op een ASUS P/I-P55TP4XE slechts een
continue transfersnelheid van ca. 6.3 MByte per seconde ofschoon
hij volgens een test in de c't behoorlijk wat sneller zou moeten
zijn. Ondertussen heb ik de harde schijf een paar dagen gebruikt en
zie daar hij bereikt nu opeens wel de volle snelheid. Hoe kan dat?
: Dat kan aan de BIOS liggen. Menige BIOS-versie, zoals bijvoorbeeld
de versie 0203 voor het ASUS P/I-P55TP4XE gedragen zich anders op
een schone of door H2bench gewiste harde schijf, dan op een harde
schijf die al eens gepartitioneerd is geweest. De oorzaak zit hem
in het algoritme, dat de BIOS developers geïmplementeerd hebben
voor die gevallen waar de gebruiker een andere IDE-adapter
gebruikt.
De BIOS probeert eerst uit te vinden of de IDE-adapter met 32-bit
benaderingen uit de voeten kan. Daarvoor leest het de eerste sector
vban de harde schijf, het master boot record, eerst met 16-bit
benaderingen in. Als deze een geldige partitie tabel bevat (te
herkennen aan de signatuur 0aa55h in de laatste beide bytes), leest
de BIOS vervolgens dezelfde sector nog een keer met 32-bit
benaderingen in, en test of de inhoud gelijk is. Alleen als dat het
geval is, werkt de BIOS in het vervolg met 32-bit benaderingen.
Bevat de partitietabel daarentegen vanaf het begin ongeldige data,
blijft de BIOS voorzichtheidshalve de met iedere IDE-adapter
kompatibele 16-bits benaderingen gebruiken. Dit uit zich in een
overdrachtssnelheid van niet sneller dan 6 á 7 MByte/s.
Voer daarom voor de meting van H2bench eerst het bevel 'Fdisk /mbr'
uit, om de voor de BIOS benodigde signatuur in het Master boot
record te schrijven. Na herstarten zou de IDE-interface dan
gegarandeerd in de snellere 32-bit mode moeten werken.