HDTune doet RAW I/O, dus helemaal geen filesystem API maar het openen van een ruwe disk. Dat wordt ook door sommige systeemprogramma's gedaan die persé niet op filesystem mogen werken.
AS SSD en CrystalDiskMark gebruiken API calls net zoals echte programma's dat doen. Je hebt wel gelijk dat ze flags gebruiken om filesystem caching uit te schakelen, anders zou het net weggeschreven bestand nog in RAM staan en bij het lezen je de RAM testen ipv de storage.
Ik had het over de OS caching wat softwarematig eenvoudig kan uitgeschakeld worden en wat zowel CDM, AS SSD als HD Tune doen.
Caching werkt op filesystem-niveau; je OS cached geen raw disk I/O. HDtune hoeft dus niets uit te schakelen. Het spreekt je schijf op een totaal andere manier aan dan CDM en AS SSD. Overigens heeft HDtune Pro wel een "Files" benchmark, die wel op je filesystem wordt uitgevoerd.
Dit is de beschrijving die Microsoft hierover geeft:
The system opens a file with no system caching. This flag does not affect hard disk caching.
Over welke cache heb jij het dan?
Ik heb het over read-ahead and write buffering, dat is heel wat anders dan RAM caching wat je filesystem gebruikt om bestanden (geen ruwe blocks) te cachen. In feite wordt alle RAM die ongebruikt is door programma's als filecache gebruikt. Dit kun je eenvoudig zien in Task Manager, klik op Performance tab en zie onder de "Cached" hoeveelheid RAM. Dit kan heel groot worden, maar heeft als voordeel dat als programma's meer RAM nodig hebben dit snel wordt weggedonderd en dus wel degelijk beschikbaar geheugen betreft.
Start process explorer eens op en kijk welke API calls HD Tune gebruikt: CreateFile, ReadFile en WriteFile.
Exact dezelfde als échte programma's gebruiken (file is een zeer ruim begrip in Windows).
API calls naar je filesystem kunnen niet bepalen waar de data naartoe wordt geschreven of van gelezen. HDtune doet raw I/O zelfs als er geen filesystem is. Sterker nog, om de write test uit te voeren moet je verplicht je filesystem wegdonderen als beveiliging omdat het dan willekeurig LBA zal overschrijven en zonder die beveiliging je filesystem corrupt raakt.
10% verschil ofzo, dat klopt dus aardig. Met HDtune kun je verschillen krijgen van 80%; waarbij dus op filesystem-niveau je 5x hogere performance krijgt dan in HDtune. Dit komt het meest voor bij FakeRAID zoals Silicon Image / JMicron en andere softwarematige RAID die zelf geen read-ahead toepast. HDtune laat dan erg lage performance zien (bij 64KiB) blocks terwijl ATTO zich daar niets van aan trekt omdat het filesystem zorgt voor een hogere queue depth (cq. read-ahead).
Bij kleine request grootte zoals onder de 64KiB is je CPU vaak een bottleneck. Vooral onder Windows platform omdat Windows alle I/O single threaded uitvoert; bij een quadcore met hyperthreading ben je dus CPU-bottlenecked op 12,5%.
[
Voor 3% gewijzigd door
Verwijderd op 07-05-2011 16:36
]