Bij tests zijn nieuwe SSD’s sneller dan tijdens normaal gebruik. Daarom worden ze volgens vastgestelde procedures voorbereid om een realistisch scenario te creëren – iets wat Sandisk nu versnelt.
Preconditioning maakt SSD-benchmarks realistischer, maar kost dagen
De maximale snelheid van SSD’s verandert tijdens het gebruik. Wanneer een nieuwe SSD voor het eerst in gebruik wordt genomen is die erg snel, omdat alle flashgeheugencellen nog leeg zijn. Naarmate er meer gegevens op komen en er meer interne beheertaken plaatsvinden, neemt de schrijfprestatie af. Tegen het einde van de gespecificeerde levensduur gaat de schrijfprestatie nog verder achteruit omdat de inspanning voor foutcorrecties toeneemt.
Benchmarks met een gloednieuwe SSD zijn daarom slechts in beperkte mate representatief voor hoe hij zich daadwerkelijk gedraagt. Hoe een SSD in het dagelijks gebruik presteert, is beter in te schatten als een SSD vóór die tests in een gedefinieerde gebruiksstatus wordt gebracht. Daarvoor is er de zogenaamde preconditioning, waarbij een SSD wordt voorbereid door hem één of zelfs meerdere keren te beschrijven.
Het beschrijven van SSD’s duurt echter erg lang – zeker bij server-SSD’s met de tegenwoordig gebruikelijke hoge capaciteiten. Het volledig beschrijven van een SSD van meerdere terabytes duurt niet uren, maar dagen.
SSD-fabrikant Sandisk heeft een nieuwe methode ontwikkeld die dat proces aanzienlijk moet verkorten.
Een SSD gedraagt zich niet als een statisch opslagmedium. Controllers, Flash Translation Layer, wear-leveling en garbage-collection beïnvloeden op dynamische wijze hoe efficiënt gegevens kunnen worden geschreven, verplaatst en gewist. Hoe intensiever een schijf wordt beschreven, des te meer de firmware intern moet organiseren – wat direct van invloed kan zijn op sequentiële gegevensoverdrachtssnelheden, willekeurige benaderingen (input-/output operations per second, IOPS) en responstijden (latency).
Benchmarkstandaard
Daarom heeft de Storage Networking Industry Association (SNIA), een brancheorganisatie van fabrikanten van opslagapparatuur, een standaard opgesteld voor het uitvoeren van snelheidsbenchmarks (zie de link bij dit artikel).
De Solid-State Storage Performance Test Specification (PTS) beschrijft in detail hoe SSD’s in verschillende scenario’s moeten worden getest om vergelijkbare, betrouwbare en reproduceerbare resultaten te verkrijgen. De preconditioning is daarbij een centraal onderdeel, omdat deze de basis vormt voor de daaropvolgende tests.
De werkwijze volgt meestal hetzelfde patroon. Eerst wordt het schijfstation geïnitialiseerd en beschreven met een gedefinieerde belasting, vaak over de volledige bruikbare capaciteit of over een vastgesteld bereik. Dat wordt herhaald totdat kengetallen zoals IOPS en latentie zich binnen gedefinieerde grenzen stabiliseren – dan is de zogenaamde steady state bereikt. De daarvoor benodigde tijd is vooraf niet bekend, die vloeit voort uit het gemeten prestatieverloop.
Bij veel testomgevingen worden daarbij tools zoals de flexible I/O-tester fio gebruikt om blokgrootte, queue-depth, benaderingspatronen en schrijf-/leesverhoudingen nauwkeurig te kunnen regelen (zie de link bij dit artikel).
Het is belangrijk om het preconditioning-gedeelte duidelijk te scheiden van de eigenlijke benchmark en beide stappen transparant te documenteren, zodat de resultaten inzichtelijk en reproduceerbaar blijven.
Het doel van preconditioning is niet het kunstmatig verslechteren van de SSD, maar het benaderen van een betrouwbare testtoestand die niet wordt vertekend door de willekeur van een nieuwe toestand.
Preconditioning volgens SPRandom
Naarmate de SSD-capaciteit toeneemt, wordt de voorbereidingstijd steeds langer. Enterprise-schijven zijn inmiddels verkrijgbaar met capaciteiten tot 245 TB; bij dergelijke schijven kan klassieke preconditioning vele dagen in beslag nemen. Met toenemende capaciteiten wordt dat proces steeds inefficiënter.
Ingenieurs van SSD-fabrikant Sandisk hebben daarom een nieuwe methode voor preconditioning bedacht. Door een pseudo-willekeurig schrijfpatroon zou het proces met de SPRandom-methode (Sandisk Pseudo Random) in één enkele doorloop moeten kunnen worden voltooid. Volgens Sandisk is de tijd voor het preconditioning van een SSD van 32 TB teruggebracht van 160 uur naar ongeveer 6,2 uur.

De ingenieurs hebben de software geïntegreerd in versie 3.42 van de opensource benchmarktool fio. De resultaten moeten niet verschillen van metingen met klassieke preconditioning.
Sandisk-ingenieur Steven Sprouse zei in een interview met ons dat SPRandom niet alleen de tijd die nodig is voor de preconditioning drastisch vermindert, maar ook de complexiteit van het proces. Vooral bij enterprise-SSD’s, die vaak met dynamische gegevens werken, biedt de methode een groot voordeel.
Verschillen
Sprouse legt de verschillen met de klassieke methode als volgt uit: traditioneel werd de preconditioning in twee fasen uitgevoerd. Eerst werden alle opslagadressen sequentieel beschreven, waarna willekeurige schrijfbewerkingen plaatsvonden om het overprovisioning-gebied over de gehele SSD te verspreiden en zo een stabiele steady state performance te bereiken.
Overprovisioning bij SSD’s is het opzettelijk ongebruikte opslaggebied dat de controller reserveert voor taken zoals wear-leveling en garbage-collection.
SPRandom verdeelt de SSD eerst in meerdere, elkaar overlappende secties. De mate van overlap komt daarbij overeen met de verwachte overprovisioning in het betreffende gebied van de SSD.
Vervolgens beschrijft het algoritme elk logisch blokadres van de gehele schijf één keer in een pseudo-willekeurig patroon binnen die eerder in kaart gebrachte gebieden. Dat dwingt de controller om ook het overprovisioning-gebied mee te nemen.
Volgens Sandisk leiddt dat tot een toestand die overeenkomt met de resultaten van klassieke steady-state-preconditioning.
Sandisk haalt naar eigen zeggen met SPRandom dezelfde reproduceerbare meetresultaten als met klassieke methoden. Het gebruik van de software is niet beperkt tot Sandisk-SSD’s, maar werkt met alle beschikbare SSD’s. Hoewel er tot nu toe geen onafhankelijke onderzoeken naar de effectiviteit bekend zijn, beschouwen veel opslagspecialisten de methode als betrouwbaar.
Preconditioning bij client-SSD’s
Wat belangrijk is voor server-SSD’s, heeft nauwelijks praktische relevantie voor SSD’s voor ‘client’-computers zoals laptops en desktop-pc’s. Dergelijke computers lezen namelijk aanzienlijk meer gegevens van de SSD dan ze schrijven, en slechts enkele schrijfbewerkingen duren langer dan enkele seconden.
Bovendien blijven veel gegevens op dergelijke SSD’s gedurende lange tijd statisch op dezelfde plek staan.
De stabiele toestand na een preconditioning komt daarom juist niet overeen met het typische gebruiksprofiel van client-SSD’s.
Daarom zien wij bij SSD-tests af van preconditioning. Dat zou namelijk een vrij zeldzaam scenario simuleren en de tegelijkertijd test een stuk langer maken.
Overzicht van links bij dit artikel
SNIA
https://www.snia.org/
Fio 3.42
https://github.com/axboe/fio/releases
(Lutz Labs en Daniel Dupré)
Praat mee