SSD performance

Door CiPHER op zaterdag 25 mei 2013 23:58 - Reacties (21)
Categorie: SSD, Views: 7.892


Inleiding

Laat ik mijn blog eens beginnen met een perspectief op SSD performance. Daar wordt zoveel over gesproken, terwijl het eigenlijk niet zo heel interessant is. Waarom ik er dan toch over schrijf? Omdat veel mensen er hun keuze voor een bepaalde SSD op baseren. Want, we kopen een SSD toch juist voor de extra performance, toch? Anders hadden we wel een hardeschijf gekocht met lagere prijs per gigabyte. Klinkt redelijk, maar toch zitten jullie er naast. :)



Wat is een SSD precies?

Laten we beginnen met een definitie van een SSD. Een Solid State Drive onderscheidt zich van een hardeschijf ofwel HDD omdat deze geen bewegende onderdelen bevat. De term solid state betekent in deze context dat er geen bewegende onderdelen aanwezig zijn. De huidige generatie SSDs werken op basis van NAND flashgeheugen. Dit type geheugen houdt een elektrische lading vast waarmee bepaald kan worden of een 0 of een 1 is opgeslagen. Anders dan het DRAM-computergeheugen heeft NAND als bijzondere eigenschap dat het ook lange tijd zonder spanning van buitenaf zijn gegevens kan behouden. Kortom: de data is niet vluchtig, zoals bij DRAM wel het geval is.

Dat is dan ook een kern van verschil: het vluchtige Dynamisch RAM geheugen kan enkel zijn gegevens bewaren als het continu spanning van buitenaf aangeleverd krijgt, terwijl het niet-vluchtige NAND geheugen zijn gegevens ook behoudt zonder stroom van buitenaf. Dit noemen we Non-Volatile Storage.

In de toekomst krijgen we SSDs op basis van een ander geheugentype. De kandidaten daarbij zijn onder meer Magnetisch RAM (MRAM) en Phase-Change Memory (PCM). SSDs op basis van deze technieken hebben heel andere eigenschappen dan de huidige SSDs op basis van NAND flashgeheugen. Dit beïnvloedt ook in hoge mate de prestaties en betrouwbaarheid. Kortom, de huidige generatie SSDs is slechts de eerste generatie, die nog allerlei tekortkomingen telt.

Over de toekomst van SSDs schrijf ik wel in volgende blogs. Nu wil ik mij concentreren op de huidige generatie SSDs en met name de prestaties. Daar lijkt het mensen om te doen. Immers: je koopt een SSD toch vanwege de hoge prestaties? Niet vanwege de lage prijs per gigabyte, want die ligt veel hoger dan bij hardeschijven het geval is. Klinkt logisch...



Wat is performance eigenlijk?

Als we over prestaties ofwel performance praten, dan bedoelen we het feit dat een opslagapparaat een bepaalde vertraging kent. De computer - de host - stuurt een verzoek om bepaalde gegevens te lezen, en het duurt een tijd totdat we deze gegevens aangeleverd krijgen. Omgekeerd bij schrijfacties krijgen we bericht als de schrijfactie is voltooid. De wachttijd ofwel latency, is de meest fundamentele uitdrukking van performance. Een oneindig snel opslagapparaat heeft altijd een latency van 0; dit is puur hypothetisch en zoiets als oneindig hoge snelheid. Er is altijd een bepaalde latency, hoe klein ook.

Maar performance laat zich uitdrukken in vele vormen. We onderscheiden daarbij:
  • Throughput oftewel doorvoer; voorbeeld: 500MB/s
  • IOps oftewel I/O opdrachten per seconde; voorbeeld: 4000 IOps
  • Latency oftewel wachttijd; voorbeeld: 0,25 milliseconden
Al deze drie kenmerken zijn met elkaar verbonden, en kunnen uitgerekend worden naar elkaar ongeveer zoals spanning, stroom en vermogen onderling naar elkaar kunnen worden uitgerekend. In het voorbeeld hierboven staat 500MB/s aan doorvoer gelijk aan 4000 I/O opdrachten van elk 128KiB groot (128K * 4000 = 500MB per seconde). En de gemiddelde latency is met 1/4000 gelijk aan 0,25 milliseconden.

Nu stel je de vraag; als alle drie min of meer hetzelfde zijn, waarom zeggen we dan niet gewoon 500MB/s dat is toch veel makkelijker? Om de nuances van performance te begrijpen dien ik een ingewikkelder voorbeeld te gebruiken. Maar laten we rustig beginnen! Het hoeft niet te moeilijk te worden. :)



Waarom is een SSD zo snel vergeleken met een hardeschijf?

Consumenten houden van hoge getalletjes. Als product X het getal 200 mee krijgt, en product Y krijgt 500, dan zullen veel consumenten voor het laatstgenoemde product kiezen. Ook al weten consumenten over het algemeen helemaal niet wat ze kopen, en voelen ze ergens ook wel dat ze bedrogen worden door alle marketing. Toch hebben dit soort cijfertjes een grote invloed op hun koopgedrag. Immers, je moet toch ergens op afgaan?

Maar, laat ik jullie een relativering geven van performanceverschillen tussen SSDs en hardeschijven. Dat maakt het in één klap duidelijk:

Performanceverschil met grote bestanden: factor 3 ofwel 300% sneller dan een moderne schijf.
Performanceverschil met kleine bestanden: factor 100 tot 1000 ofwel tienduizend tot honderdduizend procent sneller dan een moderne schijf.

Dat is nogal een groot verschil! Waar een SSD dus maar drie keer sneller is dan een hardeschijf, is hij enorm veel sneller met het verwerken van kleine bestanden. Dat laatste wordt vaak uitgedrukt in IOps, omdat het verwerken van kleine bestanden meer I/O-opdrachten veroorzaakt dan het verwerken van grote bestanden.

Ik hou van dingen visualiseren, dus laat ik eens een voorbeeld geven:

Bij het verwerken van één groot bestand:
SSD: 500MB/s, 4.000 I/O opdrachten per seconde (IOps) van elk 128KiB groot,
HDD: 150MB/s, 1.200 I/O opdrachten per seconde (IOps) van elk 128KiB groot

Bij het verwerken van vele superkleine bestandjes:
SSD: 250MB/s, 64.000 I/O opdrachten per seconde (IOps) van elk 4KiB groot,
HDD: 0,2MB/s, 60 I/O opdrachten per seconde (IOps) van elk 4KiB groot

Gelijk valt op, dat SSDs bij kleine bestandjes nauwelijks snelheid inleveren, terwijl hardeschijven dan juist volledig op hun bek gaan. Anders gezegd: het sterke punt van SSDs is het verwerken van kleine bestandjes (hoge IOps) terwijl het sterke punt van HDDs het verwerken van grote bestanden is (hoge doorvoer ofwel throughput).

De reden dat een SSD zoveel sneller aanvoelt dan een hardeschijf, heeft dus weinig te doen met de 500MB/s die je overal ziet bij specificaties, maar veel meer met de hoge IOps. Maar 500MB/s klinkt zo lekker simpel en duidelijk, en verkoopt simpelweg beter. Maar als je echt wilt leren over SSD performance, dan moet je iets verder kijken dan de gemiddelde consument die in 2 seconde zijn afweging maakt. De waarheid ligt vaak verborgen achter een gordijn van misleiding en deceptie.



Performance van een SSD

Als consument word je doodgegooid met allerlei specificaties over snelheden. 500MB/s dit en 80.000 IOps dat. Maar wat betekent dit nu eigenlijk? Laten we dit eens helder op een rij zetten! En dat doen we lekker simpel met... een screenshot!

http://tweakers.net/ext/f/6UAOxISofdJkCEwcvdaJGvYw/full.jpg

We draaien CrystalDiskMark, één van de meest bekende benchmarks voor Windows. Velen die een SSD kopen, willen namelijk wel even testen of het beestje zijn trucje doet. Daar hebben we onze zuurverdiende centjes natuurlijk voor gespaard, zodat we nu een snel opslagapparaatje hebben. We willen allemaal dat we de cijfertjes halen die we zouden moeten halen.

Maar wat betekenen al die getallen eigenlijk? Daar ga ik nu iets dieper op in, en het verhaal wordt daarmee wel iets technischer. Het geeft absoluut niet als je niet helemaal begrijpt wat ik bedoel, want het kost me veel meer tijd om dat begrijpelijk uit te leggen. Maar het gaat erom dat je een indruk hebt.

Wat je namelijk écht wilt weten:
  • Welke getallen zijn nu echt belangrijk?
  • Waarom is die 4K read zo laag en andere getallen veel hoger?
  • Presteert mijn SSD zoals verwacht?
Met het antwoord op deze vragen kan ik je helpen zonder dat je alles van benchmark-fetisj hoeft te begrijpen. Laten we dit gewoon stapsgewijs behandelen:



Welke getallen zijn nu echt belangrijk?

De belangrijkste performancekenmerken van SSDs in orde van meest belangrijk naar minder belangrijk:
  • Random read - single queue depth (dit is voor alle SSDs tussen de 20MB/s en 30MB/s)
  • Random write latency - low queue depth (QD2 - QD8)
  • Sequential read - queue depth is irrelevant; patroon is voorspelbaar
  • High queue depth random I/O
  • Sequential write
Random read met enkele queue depth
De belangrijke performance specificatie is voor alle moderne SSDs vrijwel gelijk. De random read met single queue depth is altijd rond de 20MB/s omdat deze niet kan worden versnelt door de interne RAID0-achtige structuur van SSDs. Omdat het patroon 'random' is en dus niet voorspelbaar, kan de SSD nog niet aan de volgende I/O request beginnen zoals bijvoorbeeld wel bij sequential read mogelijk is omdat dit patroon voorspelbaar is. Resultaat is dat slechts één van de kanalen en één van de dies per channel effectief benut kan worden. Dat wil zeggen dat de SSD op 1/16e van zijn snelheid draait. Een goede analogie hiermee is een 16-core processor waarvan een programma slechts één core op volle snelheid benut. Zou er achtergrondactiviteit zijn, dan zijn de overige cores wel nuttig. Technisch gesproken kun je stellen dat het hier om pure latency gaat, en niet om (parallelle) throughput.

Deze specificatie is zo belangrijk omdat het voor zoveel desktoptaken wordt gebruikt. Onder andere booten/opstarten (zonder SuperFetch) en applicaties starten zijn sterk afhankelijk van dit type access patroon.

Omdat dit type access patroon zo belangrijk is maar voor alle SSDs ongeveer gelijk is, zijn de verschillen tussen SSDs voor consumenten ook nauwelijks te onderscheiden van het placebo-effect. Dit komt dus niet alleen omdat SSDs al bloedjesnel zijn en nóg sneller weinig meer uitmaakt, maar dus ook omdat het performanceaspect wat nog wel merkbaar verschil zou kunnen opleveren gelijk is voor alle SSDs. De RAID0-achtige interleaving-techniek wordt bij dit type I/O juist buitenspel gezet.

Random write latency - QD2 - QD8
Random writes zijn 4K of 8K blokjes die weggeschreven worden, wat vaak op een regelmatige burst-achtige manier gebeurt. Dat wil zeggen dat een random write zelden alleen wordt uitgevoerd; vaak gebeurt het in kleine bosjes tegelijk. Dat komt omdat random writes vaker dan andere writes als synchronous writes worden uitgevoerd; writes die veilig moeten worden weggeschreven. Dit betekent in de praktijk dat er filesystem overhead bij komt kijken zoals journaling en metadata. Meer hierover in volgende blogs.

Bij random write is de latency het enige van belang. Deze mag niet te hoog zijn. Echter, SSDs kunnen juist sterk variëren op latency bij writes. Dit komt omdat SSDs wellicht garbage collection moeten uitvoeren voordat een writeopdracht kan worden verwerkt. Met name bij gebruikte SSDs of zeer slechte SSDs. Een voorbeeld van een slechte SSD is de JMicron JMF-612 welke vooral bekend is onder de OCZ Core-series. Deze hadden zo'n hoge write latency dat je 'stotterende' prestaties kreeg en irritant gedrag van applicaties die tijdelijk bevroren. En soms zelfs blauwe schermen omdat de latency te hoog werd.

Intel is de laatste jaren bezig met consistente prestaties in plaats van absoluut/gemiddeld hoge prestaties. In het bijzonder gaat het dan om write latency, de gemiddelde writelatency kan wel laag zijn, maar je moet ook de uitschieters - de maximale latency - in toom kunnen houden. Hier valt nog werk te verrichten voor SSDs in toekomstige generaties. Intel is hier recent druk mee bezig.

Sequential read
Is ook belangrijk en merkbaar bij het starten van games en andere algemene taken. Omdat dit performanceaspect heel gemakkelijk te bereiken is met de RAID0-achtige interleavingtechnologie in SSDs, is dit dan ook een koud kunstje. De controller is vaak wel beperkt qua rekenkracht en de SATA-interface beperkt de sequential read ook enorm. Bedenk dat een 32GiB Crucial M4 (mSATA) al een sequential read heeft van 400MB/s. Zou je dit vertalen naar de 256GB versie dan kom je aan 3,2GB/s. Hier blijft echter maar 400 - 500MB/s van over afhankelijk van de firmware. Bij MLC NAND geldt dat lezen véél sneller is dan schrijven; ongeveer een factor 10 sneller. Dus als schrijven al 400MB/s is dan kun je raden wat de sequential read geweest had kunnen zijn. Helaas heb je bottlenecks als de SATA interface en de controller zelf die deze snelheid niet bij kunnen houden. Maar de potentie is er wel.

Random I/O met hoge queue depth
Queue depth wil zeggen een wachtrij aan I/O opdrachten die parallel kunnen worden uitgevoerd. Analoog hieraan zijn er programma's met meerdere threads die op een multicore-processor gelijktijdig kunnen worden uitgevoerd. Een quadcore met een sterk multithreaded applicatie zal deze in potentie vier keer sneller kunnen uitvoeren dan een singlecore chip, zaken als turbocore niet meegerekend. Bij queue depth werkt het ongeveer hetzelfde, met als verschil dat een moderne SSD dus al tot 16 I/O-opdrachten gelijktijdig kan verwerken. Een RAID0 van twee moderne SSDs dus al tot 32 I/O opdrachten. Kortom: de sky is the limit hier.

In veel gevallen is het zeer lastig om in de praktijk een hoge queue depth te bereiken. Zie het meer dat de pieken niet voor vertraging kunnen zorgen. Als er een piek is van een grote wachtrij van I/O opdrachten, dan zuigt de SSD deze helemaal leeg. 16 opdrachten worden uitgevoerd in grofweg dezelfde tijd als dat één opdracht zou worden uitgevoerd. Dat vind ik persoonlijk erg cool. Dat is de kracht van het principe van interleaving, beter bekend als RAID0.

Sequential write
Grote bestanden schrijven is iets wat je zelden zult doen op SSDs, uitzonderingen daargelaten. In veel gevallen gaat het om clonen van SSDs of een spel overzetten van NAS of hardeschijf naar SSD. Echter, in heel veel gevallen is juist de bron de bottleneck. Een hardeschijf zal maximaal met 150MB/s kunnen lezen dus is de ~400MB/s sequential write van een bloedsnelle SSD vrijwel nutteloos. Ook met een NAS die via gigabit ethernet loopt heb je weinig aan de hoge sequential write.

Helaas is dit wel het enige aspect waar consumenten naar kijken en ook hun keuze op bepalen, terwijl de verschillen op dit gebied dus juist het minst interessant zijn. Maar dat gebeurt wel vaker, dat consumenten een product vergelijken op basis van irrelevante specificaties. Fabrikanten spelen hier gretig op in. Sandforce aan kop, die door de gebakken lucht specificaties 500MB/s sequential write biedt, terwijl dit enkel wordt bereikt als je nulletjes schrijft. Dit komt door de compressie- en deduplicatieengine van Sandforce. De werkelijke snelheid ligt tussen 35MB/s en 450MB/s in.



Waarom is die 4K read zo laag en andere getallen veel hoger?

Een SSD is eigenlijk een RAID0-array van 16 geheugenchips. Technisch gezegd: een enkele SSD bevat een 8-kanaalscontroller met 16-way interleaving (2 dies per package). Simpel gezegd betekent dit dus dat een SSD vanzichzelf al tot 16 keer zo snel is als een enkelkanaals SSD.

Maar.. er is één gebied wat RAID0 ofwel interleaving absoluut niet kan versnellen. Dat is de 4K random read met enkele queue depth. Kortweg 4K read. Dit komt omdat de SSD simpelweg niet weet welke I/O opdracht er na de huidige komt. Krijgt de SSD maar één leesopdracht per keer te verwerken, dan blijven de overige kanalen onbenut. Een goede analogie is een 16-core processor waarvan een programma slechts één core op volle snelheid benut. De overige cores kunnen wel, maar krijgen geen gegevens aangeleverd. Pas als die ene core klaar is met de huidige instructie, wordt de volgende instructie aangeleverd.

Bij random read met hoge queue depth kunnen alle kanalen worden benut en dan doet de RAID0-achtige interleavingtechnologie zijn werk uitstekend. Bij random write is het een ander verhaal overigens. Ook bij een enkele queue depth kunnen random writes worden opgespaard (write-back) om een soort wachtrij te vormen, waardoor de SSD deze toch tegelijk kan uitvoeren. Daarom is de 4K write veelal hoger dan de 4K read. Vaak is de 4K write nog wel lager dan de 4K write met hoge queue depth, maar dit komt omdat de wachtrij nauwelijks kans krijgt op te bouwen. Bij 4K write met een queue depth van tussen de 2 en 4 zie je al dat deze vrijwel verzadigd raakt. Je hebt dus geen 4K write met QD32 nodig om alle kanalen te benutten.



Presteert mijn SSD zoals verwacht?

Je kunt je SSD testen met benchmarks zoals CrystalDiskMark en AS SSD. Andere benchmarks zoals HDtune en ATTO zijn veel minder geschikt omdat ze sterk verouderd zijn en eigenlijk voornamelijk geschikt voor oudere hardeschijven zonder RAID.

Sommige leveranciers van SSDs gebruiken ATTO omdat deze benchmark nulletjes schrijft in plaats van random data. Voor alle SSDs maakt dit niets uit, behalve voor SSDs met een Sandforce controller. Deze controller beschikt over compressie- en deduplicatietechnieken. Dit stelt de controller in staat om benchmarks te misleiden en een kunstmatig hoge score te leveren. Ik ga zelfs zo ver door te beweren dat de Sandforce controller vanaf de tekentafel is ontworpen om goed te scoren in benchmarks. Meer daarover in een volgende blogpost waar ik dieper inga op Sandforce en OCZ - 'the dark side of the force'.

Bij het benchmarken kun je grofweg onderscheid maken tussen Sequential performance en Random I/O performance, zoals hierboven uitvoerig uitgelegd. De sequential performance hoort eigenlijk altijd conform de verwachting te zijn. Als deze te laag is, is het bijna altijd de schuld van de SSD zelf. Bij random I/O is dat ingewikkelder, en met name laptops en AMD-processors kunnen een lagere random read score geven omdat de processor de SSD nauwelijks kan bijhouden. Bedenk daarbij dat een benchmark een 100% load legt op de SSD terwijl de processor verder met niets bezig is. In de praktijk zal je processor ook wat met de data moeten doen, zoals wanneer je een spel opstart. Kortom, in veel gevallen is je processor de bottleneck omdat je SSD alleen al je processor kan voltrekken, althans één processorcore.



Mijn SSD scoort slecht in benchmarks!

Als je SSD niet presteert zoals verwacht, kan dit diverse oorzaken hebben:
  • Je hebt je SSD niet op de chipset SATA-controller aangesloten, maar op een SATA-poort die geleverd wordt door een extra SATA controller zoals Marvell, ASMedia, JMicron of Promise. Met name komt dit voor bij mensen die een oudere 50-series chipset hebben waarvan de Intel chipset enkel SATA/300 levert, maar een extra chip zogenaamd SATA/600 poorten toevoegt. Deze poorten zijn van mindere kwaliteit dan de Intel poorten, en dienen enkel als marketing om het bord als 'SATA/600 ready' te kunnen verkopen. Sluit je SSD dus altijd aan op de chipset SATA poorten! Meestal hebben poorten van een andere controller ook een andere kleur, check dit dus goed in de handleiding van je moederbord!
  • Je hebt geen beschikking over AHCI, maar draait in IDE compatibiliteitsmodus. Dit is een instelling in je BIOS, vaak kun je kiezen tussen IDE (soms SATA genoemd), AHCI en RAID. Als je kiest voor RAID, betekent dit veelal dat je SSD gewoon als AHCI wordt herkend, mits de SSD zelf geen onderdeel is van een RAID-array.
  • Je hebt niet de beschikking over TRIM, meestal door oude drivers of doordat je SSD niet op de chipset SATA-controller is aangesloten. Je kunt niet makkelijk controleren of TRIM werkt (de fsutil disabledeletenotify-methode is onzin) maar je kunt wel controleren welke driver je gebruikt met het programma AS SSD. Deze staat linksboven. Iastor = Intel, amdsat = AMD, msahci = Microsoft, pciide = Microsoft IDE. Al deze ondersteunen TRIM. De meeste andere drivers ondersteunen geen TRIM.
  • Je hebt je SSD bijna helemaal volgeschreven, je dient je SSD bij voorkeur niet meer te vullen dan 80 tot 85 procent. Dit staat overigens los van overprovisioning, een techniek waarbij je een gedeelte helemaal niet partitioneert en dus nooit gebruikt wordt.
  • Je hebt recentelijk veel benchmarks gedraaid en de SSD heeft rust nodig om garbage collection uit te voeren - probeer het een dag later nog eens. Teveel benchmarken is niet goed voor je SSD, af en toe een benchmark kan zeker geen kwaad tenzij je geen TRIM-ondersteuning hebt.
  • Je processor is niet zo snel en kan - zeker bij random I/O - de SSD simpelweg niet bijhouden. Windows heeft een single threaded storage backend en zal dus snel beperkt zijn door de processor. Dit geldt met name voor de random read met hoge queue depth (QD32 of QD64). Bedenk verder dat AMD processors minder goede single threaded performance hebben, en dat geldt ook voor ultrabooks en oudere laptops.
  • Je draait oude storage drivers; probeer je drivers eens te updaten. Vaak worden de storage drivers geleverd door de 'chipset drivers'. Vaak kun je kiezen om de standaard Microsoft-drivers te draaien, of de vendor-specifieke drivers.
  • Je hebt last van energiebesparende technieken, met name op laptops. Om dit te testen kun je in de achtergrond een CPU-intensief programma draaien zoals Prime95 (torture test). Gedurende dat deze draait, doe je opnieuw de benchmark. Als je nu veel hogere getallen krijgt, betekent dit dat je energiebesparingstechnieken zorgen voor lagere scores. Maar let op: dit geldt enkel voor kunstmatige benchmarks. Bij echte applicaties zal niet alleen de SSD belast worden maar ook je processor, dus in de praktijk is dit geen enkel probleem. Ga dus vooral niet je energiebesparing om zeep helpen dat is gewoon zonde. Specifiek gaat het hier om C1e wat je vaak in het BIOS kunt instellen. Ik raad sterk aan dat je deze technieken ingeschakeld laat; dat mag in de praktijk geen significant verschil uitmaken - alleen voor testdoeleinden of benchmarking kan het uitschakelen nuttig zijn.
  • Je SSD is gewoon niet zo snel als je dacht. Ga nog eens goed kijken welke SSD je precies hebt en bedenk daarbij dat een SSD van 240GB sneller hoort te zijn dan een 120GB model. Theoretisch zelfs dubbel zo snel, al zie je dit veelal alleen terug bij de schrijfsnelheden.
  • In een zeldzaam geval is je SSD gewoon stuk. Dit kun je testen door een Secure Erase uit te voeren met HDDErase.exe (DOS) of via een Secure Erase-procedure met een Ubuntu LiveCD. Als na de secure erase - wat de prestaties zou moeten resetten naar 'fabrieksniveau' - je nog steeds belabberde resultaten hebt op meerdere computers uitgetest, dan kan het echt aan je SSD zelf liggen.
Ten slot: bedenk dat CrystalDiskMark en AS SSD niet op dezelfde manier testen. AS SSD is eerlijker en geeft een gemiddelde score. CrystalDiskMark geeft een maximumscore uit alle benchmarks, en laat daardoor vaak hogere getallen zien dan AS SSD. Maar beide testen wel grofweg op dezelfde manier, via het filesystem zoals het hoort en met random data. Je test hiermee de low-level performance die relevant is en uiteindelijk zich zal vertalen in goede prestaties in de praktijk.



Mijn SSD scoort perfect in benchmarks, maar het booten gaat traag?

Dat komt vaak niet door je SSD, maar door drivers die het systeem laten wachten voor niets. Je kunt dit simpelweg controleren door te kijken naar je hardeschijf LED van je computerbehuizing. Als deze niet helder brandt gedurende lange tijd, is je SSD niet druk bezig.

Brandt het HDD-ledje wel flink, dan kunnen er twee dingen aan de hand zijn:
  • Je hebt kabelproblemen - controleer met CrystalDiskInfo of je kabelproblemen hebt door naar UDMA CRC Error Count te kijken; deze is vaak 0 maar als je hier honderden tot duizenden fouten hebt, is dit een indicatie voor een defecte kabel. Deze waarde gaat overigens nooit meer naar beneden. Dus kijk vooral of de waarde blijft stijgen; zo niet dan heb je sinds de vorige meting geen kabelproblemen gehad. Het betreft hier de (vaak roodkleurige) data-kabel, de stroomkabel is wat anders.
  • Je SSD is druk bezig met recovery omdat je niet netjes hebt afgesloten. Laat de SSD lekker een tiental minuten bezig zijn en ga deze niet onderbreken. Controleer met CrystalDiskInfo of je Unexpected Power-Loss niet voortdurend stijgende is. Dit is namelijk niet fijn voor je SSD, vooral als deze geen capacitor-beveiliging heeft, wat veel consumenten SSDs ontberen.
Je kunt het programma Soluto uitproberen om je boottime te analyseren.



Waarom is SSD performance niet belangrijk?

SSD performance is wel belangrijk; het is de reden dat je flink veel centen per gigabyte uitgeeft aan dat kreng, of althans de meest vooraanstaande reden voor veel mensen. Andere redenen kunnen zijn de lagere energieconsumptie, gebrek aan geluidsproductie en vibraties, theoretisch hogere betrouwbaarheid en relatieve ongevoeligheid voor temperatuur en andere omgevingsinvloeden.

Mijn stelling dat SSD performance weinig uitmaakt, heeft vooral betrekking op de performanceverschillen tussen moderne SSDs onderling. Kortom, als je overweegt SSD X te kopen versus SSD Y, kijk dan niet zo op die kleine verschillen die in de praktijk niet of nauwelijks het placebo-effect (dat je alleen dénkt dat het sneller is) overstijgen. In veel gevallen merk je niets van de prestatieverschillen tussen moderne SSDs. Wel tussen oudere slechte SSDs met een prutcontroller, daar kan wel duidelijk merkbaar verschil tussen zitten. Maar tegenwoordig is het best moeilijk een langzame SSD te kopen. Koop je een bekend merk - en vaak zijn dat niet de merken van hardeschijffabrikanten - dan zit je bijna altijd wel goed.

Tenminste, op het gebied van prestaties. Daar zijn weinig verschillen in de praktijk. Dat betekent automatisch dat de SSDs zich voornamelijk onderscheiden in de overige kenmerken, voornamelijk prijs maar vooral betrouwbaarheid. Dat is ook mijn stelling: ga vooral af op prijs en betrouwbaarheid. Een betrouwbare SSD geeft je een hogere kans op een product waar je jarenlang plezier van zult hebben zonder gezeik en dataverlies. Is dat niet eigenlijk veel belangrijker om je keuze op te baseren? Ik zou vinden van wel.

Welke SSDs betrouwbaar zijn en waarom zal ik dieper op ingaan in een volgende blog. Maar grofweg kan ik drie SSDs noemen die een bescherming hebben die andere SSDs niet hebben, namelijk power-safe capacitors die zouden moeten voorkomen dat een SSD zomaar corrupt of zelfs defect raakt als hij op het verkeerde moment onverwacht stroom verliest. En dat gebeurt vaker dan je denkt! De betreffende SSDs:
  • Intel 320 (met stip de meest betrouwbare consumenten SSD)
  • Crucial M500 (allround beste consumenten SSD)
  • Seagate Pro 600 (nieuwkomer)
De Intel 320 is vooral duur per gigabyte en enigszins verouderd met een klassieke SATA/300 controller, maar wel heel veilig. De Crucial M500 is waarschijnlijk de beste keus voor 90% van alle consumenten die een SSD willen. Lage prijs per gigabyte, theoretisch goede betrouwbaarheid, bekend merk met een groot bedrijf achter zich (Micron) en allround uitstekende prestaties - alleen de 120GB versie doet het op writegebied iets slechter dan concurrerende SSDs.

Volgende: SSD betrouwbaarheid 06-'13 SSD betrouwbaarheid
Volgende: Vraag het aan CiPHER! 05-'13 Vraag het aan CiPHER!

Reacties


Door Tweakers user Eagle Creek, zondag 26 mei 2013 00:49

Is het waar dat als je SSD's in RAID0 draait je per definitie inlevert op performance, of is dat ook een van de mythes?

Door Tweakers user Damic, zondag 26 mei 2013 01:20

What about Samsung? Voor de rest leuke blog :)

Door Tweakers user CiPHER, zondag 26 mei 2013 02:23

@Eagle Creek:

Dat is grotendeels een mythe. Als je twee SSDs in RAID0 draait verdubbel je in principe de low-level performance omdat je het aantal kanalen verdubbelt. Van 8 kanalen naar 16 kanalen, van 16-way interleaving naar 32-way interleaving.

Wel geldt hierbij:
  • RAID0 verbetert niet de allerbelangrijkste performancespecificatie voor desktop-gebruik: de random read met enkele queue depth. Deze kan nooit worden versnelt door RAID0 (intern of extern) en draait dus altijd tegen de snelheid van een enkel kanaal.
  • Je voegt een extra laag toe aan je storage-chain, die de potentie heeft om performance te versnellen maar andersom ook te vertragen. Slechte RAID-engines kunnen zeker je storage vertragen. Maar hedendaags gaat het vaak om Intel onboard -RAID drivers en die hebben trucjes als write-back wat goed benchmarken moeilijk maakt. Als de benchmark bezig is, worden er nog gegevens verwerkt van de vorige benchmark. Dit wordt benchmarkcontaminatie genoemd; je verpest je resultaten door niet goed te meten.
  • Je kunt wel je opslagapparaat(-volume) sneller maken, maar de rest van je systeem moet dit wel effectief kunnen gebruiken. Een enkele SSD is al zo snel dat het verder versnellen hiervan - of dat nou door extern RAID0 gebeurt of van nature - nauwelijks nog effect heeft. Je processor is heel snel bottleneck met name voor desktops, omdat alles neerkomt op een enkele processorcore. Servers hebben iets meer 'rek' omdat zij veelal meerdere cores kunnen inzetten en vaker geen Windows maar Linux of BSD draaien.
  • Je test niet altijd de performance van van de SSDs zelf, maar van de drivers. Zo zijn de Intel RST RAID-drivers met Volume write-back ingeschakeld bekend dat deze van zichzelf al sneller werken omdat ze jouw RAM-geheugen gebruiken als write-back, zoals een Areca hardware RAID-controller ook eigen geheugen heeft. De eerste X-megabyte aan writes gaan dan tegen RAM-snelheid. Dit kan een merkbaar effect geven vooral voor hardeschijven wat niet door de RAID0 zelf komt of de hardeschijven maar meer het verbergen van writes is voor de ervaring van de gebruiker. Kenmerkend hieraan is dat als een kopiëeractie is voltooid, je hardeschijf LED nog even doorknippert omdat de RAM buffercache moet worden geleegd. Maar vanuit het perspectief van de applicatie is de laatste write allang de deur uit en dus 100% voltooid. Maar in werkelijkheid dus nog niet, de gegevens staan nog deels in het RAM-geheugen.
Een goed voorbeeld van een slechte benchmark om RAID0-prestaties te testen op SSDs, is zeer recent deze benchmark van Tomshardware. Deze site staat overigens min of meer bekend als reviewsite die regelmatig de fout in gaat als het gaat om benchmarks. Met name de reviewers Achim Roos en Patrick Schmid.

@Damic: Samsung is heel bekend, en misschien raar dat ik deze niet noem. Waar Samsung 840 Pro één van de snelste SSDs is, is het wel een SSD die nadelen kent op het gebied van levensduur en betrouwbaarheid. SSDs met Samsung-controller hebben een minder hoge levensduur (write endurance) omdat hun write amplification veel hoger ligt en ze dus sneller door hun write cycles heen branden. Maar dat is niet zo'n heel groot probleem in de praktijk aangezien de levensduur bij normaal gebruik ruim afdoende is. Het grootste probleem is dat deze SSD in de categorie valt die inherent onveilig is, omdat:
  • De SSD alle writes over de DRAM-chip laat lopen. Althans geldt dit voor de 830 - ik zal moeten opzoeken of dit ook geldt voor de 840/840Pro, maar dat zal me weinig verbazen. Samsung gaat voor snelheid.
  • De SSD mist power-safe capacitors en loopt dus continu risico met stroomverlies die niet van te voren is aangekondigd. Dit zie je in je SMART-gegevens als Unexpected Power-Loss. Dit gebeurt veel vaker dan mensen denken. Als je in je BIOS of nog voordat Windows start de stroomknop gebruikt om het zaakje af te sluiten, dan geldt dat als onverwacht stroomverlies. Dit is met name erg voor Samsung omdat deze zeer agressieve garbage collection heeft en dus bezig kan zijn met schrijfacties zonder dat de host recent naar de SSD heeft geschreven.
Dat gezegd, Samsung heeft over het algemeen wel heel stabiele firmware, en dat compenseert weer deels de theoretische onveiligheid 'op papier'.

Meer over SSD betrouwbaarheid in een volgende blog. :)

[Reactie gewijzigd op zondag 26 mei 2013 02:24]


Door Tweakers user i-chat, zondag 26 mei 2013 03:09

ik vind het vooral jammer, vooral die power caps zijn extreem goodkope stukjes electronica en daarmee zouden ze dus een hoop kunnen oplossen, (en voor ons kunnen besparen) je kunt wel een batterij tussen je schijf en de stroomvoorziening steken maar dan heb je nog steeds geen manier om het kill signaal te geven wanneer je over gaat op backup... dus ook tweaker oplossingen kun je wel vergeten.

feit is wel dat je hier praat over over 80gb schrijfjes van intel die ongeveer 40gb duurder zijn dan die uit de 840pro serie van samsung. kijk maar naar de 120gb 840pro en die is al duur (zeker als je vooraf al weet dat je 120gb niet vol gaat krijgen bijv omdat je al je vluchtige data op een nas hebt staan en je pagefile / swap op een conventionele schijf = je had het immers zelf al over write wearing)...

als we het daar dan over hebben, zou ik je mening dan ook wel eens gestaaft willen zien aan een shoot out tussen de goedkoopsten / kleinste van die 2 series (we zijn hollanders) en als je wilt eventueel nog wat ander goedkoper vergelings materiaal zodat het tenminste goed opvalt waarom je zo'[n keuze wilt maken.

conclusie:
ik denk dat heel veel mensen (vooral die met een kleine beurs) zullen willen kiezen voor een klein opstart schijfje... is dit verhaal dan nog wel (of juist veel meer) van belang...

Door Tweakers user marcel87, zondag 26 mei 2013 06:13

Jij bent goed bezig, dat mag wel gezegd worden! _/-\o_

Waar heb jij deze kennis voornamelijk opgedaan, uit artikelen op Anandtech ofzo?
Misschien is het nog een tip om naar je blog te linken vanuit het grote SSD topic. Kan nog best nuttig zijn voor diepere achtergrondinformatie.

Verder wel zeer interessante blog. Ik vroeg me eigenlijk altijd al af wat de de queue depth precies doet en dat is me nu wel wat duidelijker geworden. Verder vond ik wel opmerkelijk in je stuk dat AMD cpu's toch wel aardige invloed kunnen hebben op de daadwerkelijke prestaties. Ik dacht altijd dat dit meer driver gerelateerd was... :9

Bij je stuk over het knipperen van HDD LEDs kan als extra punt dit natuurlijk ook gewoon de activiteit weergeven van bijv. optische drives. Als je die bijvoorbeeld uitzet in apparaatbeheer dan knippert in mijn geval de LED nog maar sporadisch.

Mja goed bezig! :)

Door Tweakers user H!GHGuY, zondag 26 mei 2013 10:57

Je gaat her en der nogal kort door de bocht door te veralgemenen... Je zit nooit ver van de waarheid af, maar spot-on is het ook niet altijd, helaas:
- niet alle SSDs hebben 16 kanalen. De controller ondersteunt altijd een X aantal kanalen, maar meestal is het aantal gebruikte kanalen afhankelijk van de grootte van de SSD (en dus het aantal dies op de PCB).
- Je stelt zomaar even dat een 256GB drive dan ook 8x sneller _moet_ zijn dan een 32GB drive. Maar je gaat er even losjes over dat de NAND dies ook een andere capaciteit kunnen hebben:

32G: 8x32Gbit
64G: 16x32Gbit
128G: 8x64Gbit
256G: 16x64Gbit

- Ik twijfel aan de bewering dat de bootup van je PC gekenmerkt wordt door random read, single queue depth. De bootup van hedendaagse PCs wordt zo hard als mogelijk geparallelliseerd. Zowel Windows als Linux proberen, binnen de mogelijkheden zoveel mogelijk parallel op te starten. Afhankelijk van configuratie kan dit dus meevallen of tegenvallen.

- secure erase hoeft niet altijd volle snelheid terug te geven. Bij drives met encryptie kan het zijn dat gewoon een nieuwe encryptie key gegenereerd wordt.
Je processor is niet zo snel en kan - zeker bij random I/O - de SSD simpelweg niet bijhouden. Windows heeft een single threaded storage backend en zal dus snel beperkt zijn door de processor. Dit geldt met name voor de random read met hoge queue depth (QD32 of QD64). Bedenk verder dat AMD processors minder goede single threaded performance hebben, en dat geldt ook voor ultrabooks en oudere laptops.
- de meeste controllers doen gewoon DMA. Het enige wat die storage backend moet doen is scatter/gather I/O opstarten en de boekhouding bijhouden. Als dat je CPU op z'n knieën krijgt, chapeau... Dat er teveel overhead is zal zich door hoger dan nodig CPU gebruik laten kenmerken, maar echt 100% CPU door enkel I/O lijkt me met hedendaagse mainstream CPUs overdreven.

Ik neem aan dat je dit allemaal wel weet, maar je blog simpel wil houden - let echter op dat je de iets technischer onderbouwde lezer hiermee niet wegjaagt.

Door Tweakers user dbhuis, zondag 26 mei 2013 11:14

"De waarheid ligt vaak verborgen achter een gordijn van misleiding en deceptie."

Een Jehovagetuige zou trots op je zijn :+

Door Tweakers user CiPHER, zondag 26 mei 2013 11:31

marcel87 schreef op zondag 26 mei 2013 @ 06:13:
Waar heb jij deze kennis voornamelijk opgedaan, uit artikelen op Anandtech ofzo?
Nee, hoofdzakelijk vooral zelf veel gespeeld en gebenchmarkt. En vooral ook veel nagedacht over concepten en vooral: potentie. Ik ben iemand die vooral veel zelf doet en wilt doen. Dat heeft nadelen, maar ook voordelen, namelijk dat je een ander pad volgt dan anderen en soms tot andere inzichten komt.

School heeft me evenmin veel kunnen leren. In de 2e klas zat ik tijdens de les Nederlands met een meer dan 1000-pagina's tellend boek genaamd Programmeren in Turbo Pascal 6. Ik zal nooit de blik van mijn leraar vergeten die opeens een wel héél erg dik boek zag liggen op mijn buro tijdens leesuur, en het ging doorbladeren om te controleren of dit wel tot de toegelaten lectuur behoorde. :+

Natuurlijk lees ik wel veel pdfjes en daar leer ik ook weer van. En 15 jaar lang Tweakers.net volgen heeft me vast ook geholpen. :)

Door Tweakers user CiPHER, zondag 26 mei 2013 11:49

H!GHGuY schreef op zondag 26 mei 2013 @ 10:57:
niet alle SSDs hebben 16 kanalen. De controller ondersteunt altijd een X aantal kanalen, maar meestal is het aantal gebruikte kanalen afhankelijk van de grootte van de SSD (en dus het aantal dies op de PCB).
Juist vrijwel nooit meer dan 8 kanalen. Alleen de Intel controller had 10 kanalen - daarom ook de afwijkende groottes van 40, 80, 120, 160 en 320GiB. Maar de interleaving kan wel hoger zijn dan het aantal kanalen.

Je hebt natuurlijk gelijk dat kleinere SSDs minder kanalen kunnen hebben. Maar dat was vooral vroeger zo volgens mij. Hedendaags worden vooral chips met kleinere capaciteit gekozen. Maar er zullen vast uitzonderingen zijn. Ik ken ook niet alle chipconfiguraties uit mijn hoofd. Maar over de interne werking van SSDs kom ik nog terug in een aparte blogpost ergens in de toekomst.
Je stelt zomaar even dat een 256GB drive dan ook 8x sneller _moet_ zijn dan een 32GB drive. Maar je gaat er even losjes over dat de NAND dies ook een andere capaciteit kunnen hebben:

32G: 8x32Gbit
64G: 16x32Gbit
128G: 8x64Gbit
256G: 16x64Gbit
Moet zijn, zei ik dat? :+
Kan zijn, in elk geval. Maar er hoeft geen directe relatie te zijn tussen grootte en niveau van interleaving, dat klopt. Maar in zijn algemeenheid - het principe ceteris paribus hanterende - kun je wel stellen dat een dubbel zo grote SSD ook een dubbel zo hoge performance kan hebben. En in veel gevallen is dat ook zo als je alle bottlenecks wegneemt.

Je voorbeeld van chipconfiguraties klopt ook niet voor de 128G en 256G voorbeelden. 8x(64/8)=64G, niet 128G en idem voor de 256G versie. Het toverwoord daarbij is meerdere dies per NAND package.

Maar, dat is niet het hele verhaal. Interleaving gebeurt op drie niveau's:
  • De controller stuurt meerdere kanalen aan, meestal 8 kanalen
  • De NAND package kan meerdere NAND dies bevatten
  • Elke NAND die kan vervolgens meerdere planes bevatten
Op elk niveau vindt interleaving plaats, of dat is in elk geval een mogelijkheid. Die laatste is nog relatief nieuw; multi-plane NAND dies.
Ik twijfel aan de bewering dat de bootup van je PC gekenmerkt wordt door random read, single queue depth. De bootup van hedendaagse PCs wordt zo hard als mogelijk geparallelliseerd.
Kan best kloppen. Ubuntu weet ik in elk geval dat hier vorderingen bij zijn gemaakt. Echter:
  • Er zijn altijd stukken die seriëel blijven en dus niet parallel kunnen verlopen.
  • Door de lage latency kan de wachtrij nauwelijks vollopen. Ook bij parallelle verwerking zal de queue depth lager kunnen zijn doordat de SSD de opdrachten al verwerkt heeft. Dit is ook de reden dat je de queue depth niet altijd nauwkeurig kunt meten. Een enkele queue depth zul je soms als 0 meten.
Dat gezegd, je hebt zeker een punt. Toch is booten en application loading wel degelijk iets wat zich nauwelijks laat verbeteren door RAID0 ofwel interleaving.
secure erase hoeft niet altijd volle snelheid terug te geven. Bij drives met encryptie kan het zijn dat gewoon een nieuwe encryptie key gegenereerd wordt.
Het voornaamste effect is dat een Secure Erase de mapping tables helemaal zal resetten. Je begint dus met een lege tabel. De garbage collector zal mogelijk nog wel tijd nodig hebben om de rommel op te ruimen, maar dat zijn details?
de meeste controllers doen gewoon DMA. Het enige wat die storage backend moet doen is scatter/gather I/O opstarten en de boekhouding bijhouden. Als dat je CPU op z'n knieën krijgt, chapeau... Dat er teveel overhead is zal zich door hoger dan nodig CPU gebruik laten kenmerken, maar echt 100% CPU door enkel I/O lijkt me met hedendaagse mainstream CPUs overdreven.
Een moderne Intel desktopchip krijg je niet snel op de knieën. Maar een oudere laptopchip die Turbo Core ontbeert of een AMD-chip zoals een lage TDP quadcore (Phenom X4) zul je dit zeker tegenkomen. Je kunt het zelf vrij gemakkelijk meten door tijdens de random read QD32/64 benchmark naar de CPU-load te kijken. Je moet dan wel nauwkeurig meten want het is gemakkelijk om veel CPU cycles te tellen van achtergrondapplicaties (zoals de Task Manager zelf in geval van Windows).
Ik neem aan dat je dit allemaal wel weet, maar je blog simpel wil houden - let echter op dat je de iets technischer onderbouwde lezer hiermee niet wegjaagt.
Ik zal op de technische werking van SSDs nog terugkomen in een apart artikel. Dit is slechts de eerste in een lange reeks die gaat komen - hoop ik althans! Mijn bedoeling is juist om iets te schrijven wat interessant kan zijn voor lezers op allerlei niveaus. Dus om 100% correct en volledig te zijn is juist weer niet mijn doel. Wel kan het zijn dat bepaalde blogs van nature technischer zijn dan andere. Maar in deze blog gaat het er vooral om, om de mainstream SSD gebruikers iets te leren over SSD performance. Die willen vooral iets lezen wat ze kunnen begrijpen, dus ook logisch dat ik hierin enige concessies zal moeten maken.

Daarnaast is het mijn eerste blog; altijd ruimte voor verbetering. Maar personen als jij houden mij scherp en dat is precies wat ik nodig heb. Dus vooral erg bedankt voor je feedback!

Door Tweakers user Frozen, zondag 26 mei 2013 13:04

Mooi stukje :) Eigenlijk zou the mask dit ook moeten doen met voedingen :D

Door Tweakers user CiPHER, zondag 26 mei 2013 13:18

Eigenlijk zouden veel meer mensen dit moeten doen; gewoon een kwaliteitsstukje schrijven over zaken waar zij wat over te vertellen hebben. Zo kunnen we allemaal van elkaar leren.

Op het forum beantwoord ik vooral vragen van anderen; ik maak zelden een topic aan. En daar schuilt het gevaar; je bent vooral bezig met routine en doet eigenlijk niet wat je het béste kunt.

Wat dat betreft heb ik de tweakblogs wel ontdekt. Het heeft mij in het begin wat afgeschrikt omdat het allemaal over algemene onderwerpen gaat - of lijkt te gaan. Een blog met een duidelijk profiel, zoals in mijn geval een storageblog, is misschien goed om jezelf te profileren. Want dan weten mensen ook duidelijk wat ze krijgen, in plaats van honderden blogs met vanalles wat; iets met bomen en het bos....

Nu moet ik toegeven dat ik nauwelijks nog blogs van anderen gelezen heb. Dus dat ga ik binnenkort ook maar eens doen. :)

Door Tweakers user mux, zondag 26 mei 2013 15:07

voltage, ampèrage en vermogen
Spanning, stroom en vermogen!

Door Tweakers user i-chat, zondag 26 mei 2013 16:16

mux schreef op zondag 26 mei 2013 @ 15:07:
[...]


Spanning, stroom en vermogen!
- dit zou je een +1 hebben opgeleverd, maar die zullen we maar optellen bij de -100 die je hebt omdat we al weken (if not maanden) niets meer van je hebben gelezen. ....

Door Tweakers user eL_Jay, zondag 26 mei 2013 16:42

Zoals de HWI torture test(klik)(niet perfect maar toch) van de TLC 840 laat zien is Samsung zeer betrouwbaar. Ze gaan een aantal keren over de geplande technische levensduur. De wear&tear is dus zeer conservatief afgesteld, want het is niet dat de ssd er automagisch mee ophoudt als die de vastgestelde write-cycles overschrijdt. Stel die is afgesteld op 1000x beschrijven van 1 cell dan is de life-indicator 0/1. Er is echter geen enkele indicatie dat die niet gewoon 3000X, 5000 of zelfs 10000x meegaat. (In de huidige test zitten ze nu op 2,5x en gaan ze vrolijk door)

Daarnaast is voor zover ik weet Micron/Crucial het betrouwbaarst (return-rate van +/- 0,7)
Intel en Samsung zitten daar iets boven (1 a 2 procent).

Jammer dat je slechts zo kort ingaat op accestime-latency. Aangezien dat volgens mij de voornaamste reden is waarom een ssd zo snel aanvoelt voor 95% v.d. gebruikers.
Bij huis tuin en keukengebruik en zelfs gaming heb je vrij weinig profijt van de hoge leessnelheden (voorruit, als je windows opstart). Dat je explorer zo snel aanvoelt, je browser meteen opent en je savegame instant laad komt door de lage accestime.* (tenminste voor zover ik weet, mocht dit niet waar zijn, dan hoor ik dat graag)
(Ik merk 0,0 verschil tussen sata 3 en sata 6 op mijn m4 128gb, behalve in boot-time)

Daarom is mijn advies om Crucial en Samsung te kopen als consument (snel, bewezen betrouwbaar (wat nog maar 3 merken kunnen zeggen) en betaalbaar) voor workstations kunnen bepaalde Intels een goede keus zijn of de echte power ssd als de Pro, plextors e.d.. Bij gewoon gebruik merk niemand het verschil in snelheid tussen een m4. 840, 840 pro of een Plextor. laat daarom prijs (¤/GB) en betrouwbaarheid je voornaamste motivatie zijn en staar je niet blind op snelheden waar je vrij weinig aan hebt (tenzij je heel de dag bestandjes uitpakt en verplaatst)


Edit: Fijne blog, kritiek is opbouwend/discussiegericht bedoelt ;)

* Kan je de schrijf/lees-snelheden van een SSD relatief eenvoudig limiten?
Een testje tussen een HDD, een ssd met dezelfde doorvoersnelheden als de HDD(dus voornamelijk de accestime als voordeel) en een SSD op standaard snelheden(controlegroep) lijkt me interessant :) (ik denk dat de gemiddelde user-experience tussen 2 en 3 bijna gelijkwaardig is, buiten booten)

Ter informering, wat is huis tuin en keuken software die nuttig gebruik maakt van een hoge lees/schrijfsnelheid?
-Zip/Rar
-Virusscanner
-PS/LR e.d. opslaan van grote bestanden
-Booten
-Installatie omvangrijke software als games e.d.
-Defragmenteren, DBaN en dat soort zaken, maar dat wil je met een SSD toch niet doen ;)

[Reactie gewijzigd op zondag 26 mei 2013 17:18]


Door Tweakers user analog_, zondag 26 mei 2013 18:12

HWI test is met één sample gedaan, statistisch dus vrijwel nul waarde aan te hangen (wikipedia: sample size determination). Dit gaat niet op met performance omdat performance een normaalverdeling hanteert en failure een poison/badkuip.

[Reactie gewijzigd op zondag 26 mei 2013 18:17]


Door Tweakers user CiPHER, zondag 26 mei 2013 20:02

mux schreef op zondag 26 mei 2013 @ 15:07:
Spanning, stroom en vermogen!
*schaam* dat was wel een domme fout. :P

En nog wel één van de weinige dingen die ik heb geleerd cq. onthouden van mijn schooltijd. Gelijk aangepast natuurlijk.
eL_Jay schreef op zondag 26 mei 2013 @ 16:42:
Zoals de HWI torture test(klik)(niet perfect maar toch) van de TLC 840 laat zien is Samsung zeer betrouwbaar.
Ze hebben juist geen betrouwbaarheid getest, maar write endurance. Voorts heb ik daarover al een stukje geschreven op het forum en eveneens in de reacties van het HWI-artikel. Wat me nog wel te doen staat is me excuseren voor de enigszins arrogante houding. Hoewel ik vast een aantal goede punten aanhaal, had de manier waarop ik dat bracht vast iets vriendelijker gekund. Dus dat ga ik zo nog even doen. :)
Ze gaan een aantal keren over de geplande technische levensduur. De wear&tear is dus zeer conservatief afgesteld, want het is niet dat de ssd er automagisch mee ophoudt als die de vastgestelde write-cycles overschrijdt.
Dat laatste klopt, maar wisten we al van de testen uit XtremeSystems en uit de documentatie van de flashbakkers zelf.

Echter, dat de SSD 'conservatief' afgesteld is, klopt niet helemaal. Want het is niet zo dat de SSD betrouwbaar blijft functioneren totdat hij defect raakt, helaas. Al bij 50% van de opgegeven write endurance zal je SSD minder betrouwbaar worden. Dat is dan ook echt de reden van de beperkte write cycles; niet dat deze op dat moment stopt met functioneren, maar het is een grens die de betrouwbare werking zal doen overschrijden. Althans, zoals analog_ al opmerkt, voor een grote groep samples gemiddeld; een specifiek exemplaar kan zowel positief als negatief afwijken in deze zin.

Technisch gezegd, kun je stellen dat de uBER zal stijgen (kleiner getal; van 10^-16 naar 10^-12 bijvoorbeeld). Dit maakt de SSD minder betrouwbaar met een hogere kans op onleesbare sectoren en een lagere retentie. Als dit de metadata van de SSD beschadigd raakt - en dan in het bijzonder de mapping tables - dan is het gauw over met de pret. Een SSD die niet meer betrouwbaar functioneert mag dan nog wel snel zijn, maar is door de kans op datafouten wel min of meer onbruikbaar geworden.
Daarnaast is voor zover ik weet Micron/Crucial het betrouwbaarst (return-rate van +/- 0,7)
Intel en Samsung zitten daar iets boven (1 a 2 procent).
Intel heeft ook Sandforce-schijven geleverd en ging in die tijd omhoog in de RMA-rate. Echter, ook de door mij zo als veilig bestempelde Intel 320 had tijdens deze meting last van hogere returns door de '8MB bug'. Dus echt zuivere meetgegevens van derde partijen zijn er niet. Wel van Intel zelf, die komt neer op 0,4% - 0,6% failure rate. En dat is nog de voorganger X25-M die niet over power-safe capacitors beschikte, en ook niet over RAID4 NAND bitcorrectie.

Kijkende naar de gegevens van de Franse retailer, zien we dat Intel met 0,59% versus 2,25% wint van Crucial. In dezelfde studie in 2012-2013 zien we 0,43% versus 1,32%. Maar let op: deze studie moet je met een grote korrel zout nemen. Zo zijn er fabrikanten die geen RMA's direct met de klant afhandelen (zoals Intel) terwijl andere fabrikanten dit wel doen, in elk geval OCZ en ik geloof ook Samsung. Dit beïnvloedt natuurlijk ook de cijfers die deze site verzamelt. Desalniettemin is dit één van de weinige onafhankelijke cijfers die enigszins een indicatie kunnen geven. In elk geval mag duidelijk zijn dat OCZ een te mijden merk is als het gaat om betrouwbaarheid.
Jammer dat je slechts zo kort ingaat op accestime-latency. Aangezien dat volgens mij de voornaamste reden is waarom een ssd zo snel aanvoelt voor 95% v.d. gebruikers.
Wat latency precies is en hoe het verband houdt met IOps en doorvoer (MB/s) zal ik uitgebreid behandelen in een blog over RAID performance, want juist RAID0 heeft daar een speciale band mee, omdat je van absolute latency kunt spreken versus gemiddelde latency. Kort gezegd: de absolute latency kan 1ms zijn maar de gemiddelde latency 0,1ms als je 10-voudige interleaving toepast.
Bij huis tuin en keukengebruik en zelfs gaming heb je vrij weinig profijt van de hoge leessnelheden
Games hebben over het algemeen wel veel baat bij hoge sequential read. Juist voor het laden van levels. Maar je CPU is veelal bottleneck; er moet ook wat met al die data gedaan worden.

Zou je een SSD cappen op 20MB/s, dan merk je in algemeen desktopgebruik daar nauwelijks iets van, en booten eveneens. Maar het starten van games kan wel duidelijk merkbaar langzamer gaan. Wel verschilt het natuurlijk per game, maar de dataset van games kunnen groot genoeg zijn om doorvoer de primaire stat te maken. Latency is daar juist minder belangrijk bij. Wel geldt dat je geen frame drops/spikes kunt krijgen van random reads tussendoor, iets wat ik heb mogen ervaren toen ik nog World of Warcraft speelde (PVP Wintergrasp; de beste tijd van WoW...).
Edit: Fijne blog, kritiek is opbouwend/discussiegericht bedoelt ;)
Ik ben ook zeer te spreken over de reacties! Bedenk wel: ik behandel in deze blog enkel performance wat relevant is voor bezitters van SSDs. Andere aspecten en een echte in-depth kijk op performance komt later nog. Ik heb nu een lijstje gemaakt van 22 blogs, waarvan dit de eerste is. 8-)
Ter informering, wat is huis tuin en keuken software die nuttig gebruik maakt van een hoge lees/schrijfsnelheid?
Compressietools zullen CPU-bottlenecked zijn met name voor compressie en in mindere mate voor decompressie. Je kunt wel de compressie uitschakelen ('store mode') dan zal je SSD wel tegen maximale performance archiveren.

Virusscanner is random read, booten ook in elk geval deels (maar zie hierboven), installeren van games zijn random writes met sequential writes door elkaar heen.

Defragmenteren zijn random read+random write en dat kunnen SSDs bloedsnel; zo jammer dat je niet meer hoeft te defragmenteren. ;(

DBAN is gewoon een 100% sequential write met random data.

[Reactie gewijzigd op zondag 26 mei 2013 20:16]


Door Tweakers user H!GHGuY, maandag 27 mei 2013 12:18

CiPHER schreef op zondag 26 mei 2013 @ 11:49:
Daarnaast is het mijn eerste blog; altijd ruimte voor verbetering. Maar personen als jij houden mij scherp en dat is precies wat ik nodig heb. Dus vooral erg bedankt voor je feedback!
Ik ben al blij dat we samen enkele mythes doorprikken, een tijdje geleden schreef ik trouwens deze al: HIGHGuY's blog: SSD: hoe veilig is je data?

Ik heb dan ook in mijn PC een Intel SSD voor de snelle storage, alle belangrijke data staat op de NAS (dmv Synology Cloudstation, wat dan tegelijk al een beperkte vorm van on-site backup is).
Ook die MB/s mythe heb ik recent bij aanschaf van nieuwe PC's in de familie moeten doorprikken - blij dat ik nu een reeks blogs krijg waar ik naar kan verwijzen ;)

Door DevilsProphet, woensdag 29 mei 2013 07:46

Laten we beginnen met een definitie van een SSD. Een Solid State Drive onderscheidt zich van een hardeschijf ofwel HDD omdat deze geen bewegende onderdelen bevat. De term solid state betekent in deze context dat er geen bewegende onderdelen aanwezig zijn.
Volgens wikipedia betekent dat iets anders: http://en.wikipedia.org/wiki/Solid-state_(electronics)

Door Tweakers user CiPHER, woensdag 29 mei 2013 10:04

In de context van fysica heeft Solid State een andere betekenis, maar in de context van opslagtechnologie gaat het om de afwezigheid van bewegende (mechanische) onderdelen. Zie ook: http://www.techterms.com/definition/solidstate

Equivalent hieraan is de veranderde betekenis van 'disk'. Afkomstig van disc ofwel discus, wordt daarmee origineel een cilindervormig object mee bedoeld. Maar binnen de context van computertechnologie betekent disk een opslagvolume; iets wat ook niet-stoffelijk kan zijn en derhalve afwijkend van de originele betekenis van het woord.

Zo kan ik nog wel een aantal voorbeelden geven. Het is wel jammer dat Wikipedia erg eenzijdig bericht in dit geval. Maar in 1950 was er nog geen moderne opslagtechnologie; dus was de term nog exclusief. Veelal worden door nieuwe contexten de betekenis van een woord uitgebreid, al kan dat zeer subtiel zijn en soms lastig te onderscheiden van de originele betekenis; zoals ook geldt voor het woord 'disk'.

Door Tweakers user witeken, woensdag 29 mei 2013 17:09

Op vraag van CiPHER post ik hier mijn DM-bericht dat ik naar hem gestuurd heb naar aanleiding van deze blog.
----------------------
Hallo,

Hoe komt het dat jij zoveel weet over ssd's? Je reacties over ssd's zijn echt ontzettend informatief _/-\o_.

Ik heb enkele vragen...

Je zegt dat ssd's een veel hogere snelheid zouden kunnen halen, maar dit gelimiteerd wordt door SATA-600. Waarom is er nog geen opvolger als ssd's zoveel sneller kunnen? Zal een snellere sata-600-opvolger eigenlijk voor snellere random read prestaties zorgen? Wat moet er gedaan worden om een hogere random read snelheid te krijgen? Er wordt altijd gezegd dat je van een snellere ssd niets merkt. Maakt het echt niets uit als er een ssd komt die op elk valk bv. 3 keer sneller is? Dat het niet uitmaakt welke ssd je nu neemt kan ik begrijpen, omdat het verschil performance slechts enkele procenten is, geen honderden. Maar als een ssd echt zoveel sneller wordt gemaakt, moet dat toch wel een voordeel hebben?

Ik kijk uit naar je volgende blogs! Ik heb trouwens de ssd in mijn wenslijst veranderd van een Samsung 840 Pro naar een M500 (de Intel was te duur en Sata-300 is nogal verouderd).

[Reactie gewijzigd op woensdag 29 mei 2013 17:09]


Door Tweakers user CiPHER, woensdag 29 mei 2013 18:47

Altijd leuk als anderen mijn antwoord ook kunnen lezen. Daarom ook het verzoek aan anderen: liever inhoudelijke vragen op mijn blog ipv DM, zodat anderen ook wat aan mijn antwoord hebben. :)
Hoe komt het dat jij zoveel weet over ssd's?
Omdat ik mijn schoolperiode heb overgeslagen. Dan leer je pas echt belangrijke dingen in het leven. Waaronder dus mijn interesse voor technologie, wat de wereld zal veranderen veel sneller dan mensen nu nog denken.
Je zegt dat ssd's een veel hogere snelheid zouden kunnen halen, maar dit gelimiteerd wordt door SATA-600. Waarom is er nog geen opvolger als ssd's zoveel sneller kunnen?
Dat komt eraan: SATA Express. Maar ondanks die misleidende naam betekent dit in feite dat SATA gaat verdwijnen. Alles wordt PCI-express. Dit is de native interface van je processor. In feite ga je de SSD dus rechtstreeks op de processor aansluiten. Dat heeft vooral voordelen op het gebied van latency ('access time' in de volksmond) omdat er twee schakels verdwijnen die tussen de processor en de SSD in zitten. Bovendien zal dit al het gezeik met TRIM verwijderen omdat het opslagapparaat nu zelf de 'controller' zal registreren. Het kan daarbij ook meerdere devices registreren (zeg maar: aanmelden) als het dat wilt. De kant van de software blijft het SATA, maar hardwarematig is daar geen sprake meer van. De volgende stap is dat ook aan de softwarekant de hele storage backend wordt herschreven, maar dat kan nog lang gaan duren: vooral Windows heeft altijd achterop gelegen als het om storage gaat. En jammer genoeg is dat platform bepalend of bepaalde techniek gemeengoed wordt.

De snelheid van SATA Express zal in eerste instantie 1Gbps tot 2Gbps bedragen. Bijna 1000MB/s (single lane zeg maar PCI-express 3.0 x1) tot 2000MB/s (dual lane zeg maar PCI-express 3.0 x2). Maar bedenk hierbij dat doorvoer niet zo heel interessant is; latency wel!

Bijkomend voordeel is dat er gemakkelijk extra SATA Express poorten gemaakt kunnen worden met een insteekkaartje. Dit kaartje is dan volledig passief; zonder chip. Het is gewoon het doorlussen van de PCI-express x16 bijvoorbeeld naar 16 keer een SATA Express poort. Zo'n SATA-e poort ziet eruit als een normale SATA poort en maakt ook gebruik van dezelfde SATA kabels dus je huidige kabels kun je blijven gebruiken. Dit is wel enigszins verwarrend; want het is geen SATA meer; maar PCI-express. Ook die naam is misleidend, want PCI-express is min of meer het tegenovergestelde van PCI in vele opzichten. Maar zodra zo'n naam eenmaal ingeburgerd is, wil men op de naamsbekendheid mee kunnen liften. Men weet bij PCI ongeveer wat het betekent (interface voor je insteekkaarten) en hetzelfde geldt voor SATA. Dus dat zal de reden zijn geweest, ook al vind ik het dus misleidend.
Zal een snellere sata-600-opvolger eigenlijk voor snellere random read prestaties zorgen?
Er is al SAS/1200 dus dubbel zo snel als SATA/600. En ja, dat zorgt ook voor snellere random I/O prestaties vanwege de lagere 'propagation delay' (vertraging van het versturen van data via de kabel; fysiek) maar ook omdat er meer 'ruimte' of 'plek' is op de interface om I/O berichten te versturen. Dat laatste kun je zien als elke seconden zijn er tienduizenden momenten om iets te kunnen doen, een snellere interface zal dit getal verhogen.

Maar de controllerchip moet natuurlijk wel geschikt zijn voor de snellere interface en daarnaast ook de rekenkracht hebben om deze snelheid bij te kunnen houden. De eerste SATA/600 SSD controller (Micron/Crucial C300) kwam alleen met de leessnelheid nét boven de SATA/300 limiet; ik geloof 335MB/s ofzo. Tegenwoordig zijn de SSD controllers dualcore en triplecore (Samsung) ARM-chips van hoge kwaliteit.
Wat moet er gedaan worden om een hogere random read snelheid te krijgen?
  • Interface moet sneller worden (lagere latency + meer bandbreedte)
  • Controllerchip moet sneller worden (meer rekenkracht om de snelheid bij te kunnen houden)
  • Geheugenchips moeten in een configuratie worden geplaatst waarbij er voldoende interleaving (RAID0) ingebouwd is om de snelheid aan de controller te kunnen leveren.
Vervolgens moet je systeem CPU het ook bij kunnen houden; Windows is daarbij single threaded dus komt alles aan op één CPU core die het bij moet kunnen houden. Dat gaat in benchmarks vaak nog wel lukken (behalve oude of lage TDP chips) maar als je realistische applicaties gebruikt kan dit een serieuze bottleneck gaan vormen.
Er wordt altijd gezegd dat je van een snellere ssd niets merkt. Maakt het echt niets uit als er een ssd komt die op elk valk bv. 3 keer sneller is?
Ja en nee. Het enige wat nog wel uitmaakt zijn hogere sequential snelheden voor kopiëeracties. Verder is er nog één gebied: de random reads met enkele queue depth. Hier kan RAID0 ofwel interleaving niets aan verbeteren en dat is de reden dat de SSDs 20-30MB/s doen op dit vlak. Dit kan alleen verbetert worden als de latency van geheugenchip naar controller wordt verbetert, en is ook afhankelijk van de SATA-interface. Dus SATA Express met toekomstige SSDs op basis van PCM zullen dit nog verder kunnen verbeteren. Ook RAM-drives met DDR ramgeheugen op een SATA interface zijn veel beter op dit vlak. Hier gaat het om pure latency.
Maar als een ssd echt zoveel sneller wordt gemaakt, moet dat toch wel een voordeel hebben?
Alleen als andere bottlenecks ook worden weggenomen, denk aan je CPU maar ook RAM-latency en RAM-bandbreedte. Kortom, de huidige SSDs halen de I/O-bottleneck weg waardoor CPU+RAM eindelijk op volle snelheid kunnen draaien. Maar dat betekent dus dat de volgende zwakste schakel in de keten wordt verschoven van hardeschijf (nu SSD) naar CPU. Als je een CPU hebt van 100GHz, dan kun je het maximale halen uit je SSDs in RAID0 bijvoorbeeld. Dan gaat het zaakje wel flink omhoog omdat je de hogere performance van de SSD dan optimaal kunt benutten.

[Reactie gewijzigd op donderdag 30 mei 2013 00:29]


Reageren is niet meer mogelijk