H2benchw -- by Harald Bögeholz / c't Magazin für Computertechnik Copyright (C) 2010 Heise Zeitschriften Verlag GmbH & Co. KG ============================================================================== H2benchw is een programma voor de Win32-console (vanaf de 'dos'-prompt) onder Windows NT t/m Windows 7. Het programma benadert de harde schijf direct door deze te openen als fysieke schijf. Om dit te doen moet het programma beheerdersrechten hebben. Om vergelijkbare resultaten te krijgen raden we aan geen andere applicaties te draaien tijdens de benchmark en de pc met rust te laten. (H2benchw zorgt zelf voor de maximale prioriteit voor haar proces.) Op de commandoregel moet het nummer van de te testen harde schijf en alle opties voor de test ingevoerd worden. Als het programma zonder parameters opgestart wordt, toont het een korte helptekst. ALLE OPTIES MOETEN IN LOWERCASE WORDEN INGEVOERD, de volgorde is wille- keurig. Het nummer van de te testen harde schijf is de belangrijkste parameter. De eerste fysieke schijf heeft nummer 0, de volgende is nummer 1 enz. Als je het schijfnummer zonder verdere opties invoert, geeft H2benchw de geometrie (CHS: cilinders, koppen, sectoren) en de capaciteit van de schijf weer. Voor IDE-schijven krijgt men ook nog het modelnummer, serienummer en de firmware-versie. Als de computer meerdere schijven bevat wordt aangeraden H2benchw eerst in deze modus te draaien, zodat men later gemakkelijk de correcte schijf kan kiezen. H2benchw negeert de partitionering en benadert de schijf direct, zodat alle gegevens verloren zouden gaan als er naar de schijf zou worden geschreven. Daarom werkt H2benchw normaal alleen in read-only modus. De optie "-!" activeert schrijfmetingen. Uit veiligheidsredenen werkt dit niet als het programma partities op de schijf vindt. H2benchw bestaat uit vier onderdelen: een meting van de interface- transferrate, een meting van de gemiddelde toegangstijd (seek), een zonemeting en een test van de gegevensintegriteit. De optie "-c " (-c betekent "core test" en heet zo voor historische redenen) activeert de meting van de interface transferrate op een plek die overeenkomt met procent van de capaciteit. Deze test wordt meestal bij 0 procent gedaan omdat de meeste harde schijven hier het snelst zijn. De optie "-d " test de gegevensintegriteit waarbij de eerste sectors van de schijf compleet worden getest, de rest steeksproefgewijs. In plaats van een getal mag hier ook het woord "max" staan, dan test het programma de complete harde schijf. Meer hierover verder onder in de alines "Test van gegevensintegriteit". De optie "-z" start de zone-meting. De optie "-s" start de zoekmeting (s - Seek) Als je de optie "-a" invoert worden alle deelmetingen gedaan; deze optie combineert dus "-c", "-z", "-s" en "-d 20480" indien "-!" opgegeven is. Je kunt de optie "-w " gebruiken om de resultaten naar een bestand te laten schrijven. H2benchw voegt de extensies ".txt" en ".ps" aan de opgegeven basisnaam toe en maakt twee resultaat-bestanden. Het bestand met de extensie ".txt" is een ASCII-bestand, het eerste deel ervan is een samenstelling van de resultaten. Het tweede deel bevat uitgebreide resultaten van de metingen. Denk eraan dat de zonemeting tot 1000 punten voor lees- en schrijftests heeft. Elk resultaat wordt op een afzonderlijke regel weergegeven zodat de resultaten door een ander programma verder kunnen worden verwerkt. Voordat je het .txt-bestand uitprint, moet je met een teksteditor het tweede deel van het bestand afknippen - anders print je meer dan 30 pagina's "troep" uit. Het bestand met de extensie ".ps" is in het PostScript-formaat en vat alle resultaten op een pagina samen. Je kunt deze resultaten bijvoorbeeld met GhostScript of GhostView op het beeldscherm bekijken. De volgende opties kunnen voor documentatiedoeleinden worden gebruikt: "-tt" plus de naam van de harde schijf (in aanhalingstekens) zet de 'titel' van de test, "-ts" is bedoeld voor extra informatie zoals het mediatype bij verwisselbare media. Op dezelfde wijze gebruikt men: "-tb" voor het BIOS, "-tc" voor de cpu, "-tm" boor het moederbord en "-ta" voor de adapter (SCSI of EIDE). Aangezien deze laatste componenten nauwelijks veranderen kun je deze ook in omgevingsvariabelen zetten (dwz., plaats SET commando's in een batch- bestand of zet de variabelen via het controlepaneel in XP onder System -> Advanced -> Environment Variables). De relevante variabelen hebben de namen H2BTITLE, H2BMEDIUM, H2BBIOS, H2BCPU, BOARD en H2BADAPTER. Hier wordt alleen naar gekeken als de commandoregel geen relevante gegevens bevat. In de meeste gevallen moet je alleen maar de naam van de harde schijf voor de test invoeren. Hier is een karakteristiek commando: h2benchw 1 -a -! -tt "harddisk 42" -w 42 Dit test de tweede harde schijf in de computer en slaat de resultaten in de bestanden "42.txt" en "42.ps" op. Test van de gegevensintegriteit =============================== Hsbenchw was oorspronkelijk een pure benchmark die alleen checkte hoe snel gegevens worden gelezen en geschreven maar niet of dit ook foutloos gebeurt. Met de aanpassing voor een overschrijding van de 128-GB-grens voor IDE-schijven is er een test van de gegevensintegriteit erbij gekomen (optie -d ). Deze werkt als volgt: Eerst schrijft de test in de eerste sectors van de schijf bepaalde testpatronen (geen twee ervan gelijk). De default voor is 20480 sectors (= 10 MB). In plaats van mag er ook "max" voor de complete capaciteit worden opgegeven. Hierna schrijft H2benchw telkens vijf sectors in de omgevind van alle LBA's die een macht van twee voorstellen (dit zijn bij driverbugs vaak de critische adressen). Tenslotte schrijft de test nog een bepaalde tijd lang (default: 10 secondes) naar een pseudo- toevallige reeks van sectors. Hoe lang deze laatste fase duurt, kun je met de optie -dt veranderen, waarbij het getal de tijd in secondes opgeeft. Na een korte rustpauze leest H2bench alle eerst geschreven testgegevens terug en chekct deze. Als hierbij een fout optreedt, breekt hij af en meldt de plaats van de fout, verwachte waarde en gevonden waarde. De testgegevens zijn zo opgezet dat in het eerste Dword (offset 0) van elke sector diens LBA te vinden is. Als hier bij de check een fout wordt ontdekt, betekent dit waarschijnlijk dat een sector naar een foute adres werd geschreven, en je kunt aan de hand van deze waarde zien, welk sector dit was. LET OP: als je de integriteitstest zonder de optie -! oftewel alleen lezend doorvoert, moeten natuurlijk eerst de overeenkomstige hoeveelheid testgegevens geschreven zijn, anders krijg je een foutmelding. Taalkeuze ========= H2benchw "spreekt" momenteel drie talen: Duits, Engels en Nederlands, de standaardtaal is Duits. De commandoregeloptie "-nederlands" kiest Nederlands, "-english" kiest Engels en "-deutsch" kiest Duits. De taal kan ook gekozen worden met de omgevingsvariabele H2BLANGUAGE. Dan hoef je de taal niet meer op de commandoregel in te voeren. Je moet H2BLANGUAGE in het controlepaneel zetten, bijvoorbeeld: SET H2BLANGUAGE=deutsch voor Duits SET H2BLANGUAGE=english voor Engels SET H2BLANGUAGE=nederlands voor Nederlands Bekende Beperkingen =================== Op sommige oudere meerprocessor- of dual-core-systemen heeft H2benchw problemen met de tijdmeting. Bij twijfel aan de correctheid van de resultaten is het aan te raden om de meting op een systeem met één processor te herhalen. Vragen ====== Stuur alle vragen in Duits of Engels aan bo@ct.de (Harald Boegeholz) of in Nederlands aan lezervragenct@fnl.nl. Vragen die te vinden zijn in de FAQ hieronder worden niet beantwoord. FAQ === ? H2benchw crasht altijd met een leesfout. : Wanneer de schijf fysieke fouten bevat kan de huidige versie van H2benchw de continue transferrate (zone meting) niet meten. Met een beetje geluk werken enkele andere metingen nog wel als ze geen defecte sectoren tegenkomen. ? Als ik H2benchw start krijg ik altijd een foutmelding dat de timer niet monotoon loopt en het programma crasht. : Op sommige chipsets is de timer defect: de lagere bits worden soms fout gelezen, en het lijkt alsof de tijd achteruit gaat. Tot nu toe werd deze foutmelding alleen onder Windows 2000 gezien. Windows NT en XP schijnen deze fout te compenseren. Als je deze foutmelding onder Windows XP tegenkomt, zou ik een exacte beschrijving van je systeem en de omstandigheden waaronder deze foutmelding te zien was waarderen. Email (Engels of Duits) aan bo@ct.de of (Nederlands) aan lezervragenct@fnl.nl In de tussentijd kun je de optie "-Tnocheck" gebruiken om de timer test te voorkomen - niet het eigenlijke probleem. Als je deze optie gebruikt, zijn de resultaten nog steeds redelijk correct, maar niet nauwkeurig. ? Ik heb H2benchw 2.15 en 2.3. Welke hiervan is nieuwer? : Het getal achter de punt is geen decimale breukfractie maar een oplopend versienummer. Na 2.9 (twee-negen) kwam 2.10 (twee-tien), daarna 2.11 (twee-elf) enz. De actuele versie is 3.16. ? Ik gebruik een IDE RAID groep. Waarom geeft H2benchw de model- en serienummers van de schijven niet aan? : De ATA gegevens worden momenteel alleen bij losse IDE-schijven gelezen. Er zijn bovendien ook nog enkele hostadapters waar dit nog niet eens voor losse schijven werkt, sorry.