Verschil IOps tussen SATA/300 en SATA/600

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • dieter87
  • Registratie: Mei 2005
  • Laatst online: 29-07-2023
Hallo,

Ik heb momenteel een Crucial M4 zitten van 128GB,
nu wel ik deze verkopen en een 250GB SSD gaan aanschaffen (de EVO 840)

Nu zit ik zelf met een SATA II controller en kon dus nu al niet van de maximale performance genieten.
Nu vroeg ik mij af of sata 2 vergeleken met sata 3 een bottleneck is voor de IOPS die een SSD haalt?
Ik weet dat de max seq read/write niet boven de 300 gaat raken met een sata2, maar hoe zit dat met die IOPS? Zit daar ook een limiet? Er is namelijk een behoorlijk groot verschil te zien tussen beide:
Crucial 40K/35K IOPS
EVO 97K/66K IOPS

Ik weet ook dat als ik voor het onderste uit de kan te willen halen zou moeten upgraden,
maar ik had dit best wel eens willen weten, gezien zowel Windows als bijna alle programma's met best kleine bestanden werken en zelden die max seq read en write halen. :)

Acties:
  • 0 Henk 'm!

  • redfoxert
  • Registratie: December 2000
  • Niet online
Ik betwijfel eerlijk gezegd of je het uberhaubt gaat merken, die IOPS verschillen. Qua size is het uiteraard wel een duidelijke verbetering :)

https://discord.com/invite/tweakers


Acties:
  • 0 Henk 'm!

  • dieter87
  • Registratie: Mei 2005
  • Laatst online: 29-07-2023
Ja ik schiet gewoon tekort nu.

Maar, is het niet daar dat het allemaal om draait? IOPS itt seq read en writes?
Ik bedoel programmas als CAD en Photoshop openen duurt best nog een eindje,
wat bepaald dat die opstarttijd korter wordt?
Niet dat ik het allemaal zit te volgen met een chronometer, maar als ik toch een nieuwe koop is het aardig meegenomen. CAD opstarten duurt toch wel een seconde of 6

Acties:
  • 0 Henk 'm!

  • Bee.nl
  • Registratie: November 2002
  • Niet online

Bee.nl

zoemt

Voor uitgebreide uitleg over (relevante) prestaties van ssd's zie: CiPHER's Storageblog: SSD performance

De sata-interface kan beperkend zijn op de sequential read, wat een rol speelt bij het starten/laden van games en (zwaardere) applicaties. Focus je niet alleen op de sequential read, want random read en write latency spelen ook een erg belangrijke rol, zo niet belangrijker. Staat allemaal haarfijn uitgelegd in de blog.

Het aantal IOPS is afhankelijk van de schijf die achter de interface hangt, niet de interface zelf. De interface beperkt alleen de beschikbare bandbreedte. De doorvoersnelheid is dan ook het aantal IOPS maal de grootte van de I/O-opdracht.

Acties:
  • 0 Henk 'm!

Anoniem: 15758

Nu vroeg ik mij af of sata 2 vergeleken met sata 3 een bottleneck is voor de IOPS die een SSD haalt?
Zowel ja als nee. Voor de belangrijkste performance specificatie van SSDs - de 4K random read IOps met enkele queue depth (20-35MB/s) is latency het enige wat telt. Dit type performance spec is de belangrijkste reden dat SSDs zoveel sneller en snappier aanvoelen versus hardeschijven.

20 tot 35MB/s ligt natuurlijk ver beneden de 300MB/s bandbreedte van SATA/300. Betekent dit dan ook dat het helemaal niets uitmaakt of je SATA/300 of SATA/600 gebruikt? Dit is iets wat heel veel mensen positief zouden beantwoorden. Maar het goede antwoord is dat het wel degelijk uitmaakt, SATA/600 kan zo'n 20% verbetering geven op IOps ook al zit je ver beneden de grens voor bandbreedte. De reden hiervoor is dat SATA/600 een lagere latency heeft, vooral voor 4K random read IOps is latency een 100% bottleneck.

4K random read IOps kort uitgelegd: als elke seconde telt. Een ambulance moet van plek A naar plek B over de weg. Of je nou drie duizend ambulances laat rijden of één, de afstand (latency) is het enige wat telt. Dus als het 10 minuten duurt, is dat de latency. De bandbreedte is de wegcapaciteit dat je ofwel één maar ook drie duizend (300MB/s) ambulances kunt rijden. Maar allemaal hebben ze een latency van 10 minuten. Leuk dus dat je er heel veel tegelijk kunt sturen, maar wat in dit geval telt is gewoon de tijd dat er één zo snel mogelijk ter plaats kan zijn.

Doorvoersnelheid (throughput) is heel wat anders. Dat kun je zien als 100 duizend kilo aardappelen die je van A naar B moet krijgen. Hoe lang een enkele vrachtwagen duurt tussen punt A of B (de latency) is onbelangrijk, het enige wat telt is hoe lang het duurt voordat je alle aardappelen op plek B hebt gekregen. Dus tig vrachtwagens die tegelijkertijd rijden op de weg geeft dan meer vrachtcapaciteit dan een snelle sportwagen die veel sneller ter plaatse is (lagere latency) maar weinig vrachtcapaciteit (throughput) heeft. In dit geval is SATA/600 een grote verbetering omdat de wegcapaciteit verdubbelt: je hebt twee keer zoveel rijbanen, simpel gezegd dus je kunt ook meer vrachtwagens tegelijkertijd laten rijden.
Het aantal IOPS is afhankelijk van de schijf die achter de interface hangt, niet de interface zelf. De interface beperkt alleen de beschikbare bandbreedte.
Dit klopt dus niet helemaal. Ook bij 30MB/s aan random read IOps is de interface een gedeelte van de bottleneck. De interface zelf voegt namelijk vertraging toe (latency) voor de ambulance die simpelweg zo snel mogelijk ter plaatse moet zijn. Dit wordt met een deftig woord propagation delay genoemd.

Hetzelfde geldt voor PCI-express 1 versus 2 versus 3. Een PCIe 2.0 x4 apparaat is sneller/beter dan een PCIe 1.0 x8 interface, ook al is de bandbreedte hetzelfde - de latency is iets lager doordat de interface minder tijd nodig heeft om een enkele I/O stroom over te brengen. Het effect is maar 20% - de interface is slechts deel van een grote keten die latency toevoegt tot het geheel (totale latency).

Als ik heel eerlijk mag zijn: dit is allemaal leuk vanuit academisch oogpunt, maar in de praktijk ga je er gewoon weinig van merken. SATA/300 is snel zat, de hogere IOps ga je echt niet onderscheiden van het Placebo-effect (dat je dénkt dat iets sneller is). Een Crucial M4 op SATA/300 is gewoon al snel zat. Het enige waar je mogelijk wat verschil merkt versus twee SSDs in RAID0 op SATA/600 dus 1GB/s is:
  • 1) kopiëeracties op de SSD zelf of vanaf een andere snelle bron (zeldzaam voor SSDs).
  • 2) inladen van spellen/levels (sequential read is hoger)
  • 3) installeren van (Windows) updates (sequential/random writes)
Voor de rest zul je weinig merken tussen een optimaal presterende Crucial M4 en een bloedsnelle SATA/600 configuratie in RAID0 met 2 SSDs. Een enkele SSD is gewoon al heel erg snel. 100 duizend IOps ga je never nooit bereiken in de praktijk; je moet echt een brute serverload hebben om de SSD zo heftig te kunnen belasten. We komen van 60 IOps voor een hardeschijf; bij 6000 IOPS is dit al 100 keer zo snel. Je kunt de bottleneck niet eindeloos blijven verlagen omdat je last krijgt van diminishing returns.

Acties:
  • 0 Henk 'm!

  • dieter87
  • Registratie: Mei 2005
  • Laatst online: 29-07-2023
Bedankt!

Wat ik me nog afvraag, indien je toch Photoshop en CAD sneller wil opgestart krijgen, wat doeje dan best?
Hoger IOPS of hoger seq read/write? Want dat duurt echt ettelijke seconden, dus met wat is hij bezig? kleine bestanden? dat het bij games laden de seq read/write uitmaakt snap ik, maar bij het OPSTARTEN van programmas lijkt mij dat nooit zo?

Ook heb ik last van het opslaan van zeer grote bestanden op photoshop
(Ik studeer architectuur en als je daar een A0 blueprint maakt heb je snel een 500MB bestand)

Deze opslaan duurt echt enorm lang, somehow duurt die laatste procent evenlang als de 99 andere daarvoor...
Nu heb ik het over toch wel 30 seconden? Is er iets mis? Het is toch 1 groot bestand en dat zou er toch tegen de 300MB/s moeten tegenaan gaan (in theorie)? Of ligt dit aan mijn CPU die alles nog netjes moet zetten voor op te slaan? (i5 520M)

Acties:
  • 0 Henk 'm!

Anoniem: 15758

Als ik dit zo hoor denk ik dat je helemaal geen I/O bottleneck hebt - tenzij je Crucial M4 is gedegradeerd in performance - maar veel eerder een CPU bottleneck. Het punt is dat je processor niet altijd alle cores effectief kan benutten omdat software maar deels parallel gebruik maakt van je processor maar veel vaker seriëel. Dat betekent dat maar één core effectief benut wordt, met een dualcore met hyperthreading betekent dit dat 25% CPU belasting al een 100% bottleneck vormt in jouw geval.

Je kunt het ook enigszins zien aan de HDD LED die je ook op je laptop kunt zien. Als deze continu brandt dan is je SSD inderdaad bottleneck, maar ik vermoed dat deze maar incidenteel licht knippert en dat je processor gewoon dé bottleneck is voor het soort workload dat jij doet. Helaas kun je daar niet echt veel aan verbeteren, jouw processor is ietwat ouder maar een nieuwere processor zal niet superveel uitmaken. De beste plaats voor verbetering zal toch de software zelf zijn; dus wellicht nieuwere versies van de softwarepakketten die je gebruikt.

Acties:
  • 0 Henk 'm!

  • redfoxert
  • Registratie: December 2000
  • Niet online
CiPHER heeft mijn stelling iets duidelijker verwoord :P

https://discord.com/invite/tweakers


Acties:
  • 0 Henk 'm!

  • dieter87
  • Registratie: Mei 2005
  • Laatst online: 29-07-2023
Waarvoor dank.

Dus CPU maakt wel degelijk uit voor het opslaan, nuja er kunnen best soms een 200tal layers zijn.
Jammer dat nog niet (veel) sneller kan, echt vervelend als je voor een kleine wijziging 30 seconden moet wachten voor de file te openen en dan daarna weer voor op te slaan.

Acties:
  • 0 Henk 'm!

Anoniem: 15758

Je kunt van die 30 seconden waarschijnlijk maximaal 4 seconden afsnoepen door een bloedsnelle SSD te nemen die 500MB/s kan schrijven op SATA/600 interface. Maar dat is denk ik het maximale wat je qua I/O bottleneck eraf kunt halen, waarschijnlijk is dit slechts de helft. Dan loont het denk ik niet om in SSDs enzo te investeren. Je CPU en vooral softwarepakket is de grootste bottleneck. Daar kun je denk ik niet heel erg veel aan veranderen.

Acties:
  • 0 Henk 'm!

  • Reepje
  • Registratie: Juni 2010
  • Niet online
Ik vind de iops vs mb/s snelheids verhaal voor ssd nog steeds ondoorzichtig.

Voor de 4k snelheden wil men nu veelal iops geven, zou belangrijk zijn.
Voor de grotere seq snelheden geeft men weer Mb/s.

Maar als je 4k snelheid 10.000 iops is, dan kan ik toch ook zeggen 40 Mb/s ??
En als de 16 Mb snelheid 165 Mb/s is, dan kan ik toch ook zeggen 10,33 iops ?

Of zit ik er helemaal langs.

Acties:
  • 0 Henk 'm!

Anoniem: 15758

Dat is helemaal correct.

Latency, Throughput en IOps zijn drie elementen die sterk met elkaar verbonden zijn, maar niet helemaal hetzelfde.

Jouw voorbeeld is analoog aan:
10 volt * 1 ampère = 10W
1 volt * 10 ampère = 10W

Het vermogen (doorvoer) is hetzelfde, maar de spanning en stroomsterkte wijkt af. Alle drie zijn met elkaar verbonden. Echter, dit betekent niet dat beide gevallen precies hetzelfde zijn. Bij stroom betekent hogere ampère bijvoorbeeld meer verlies/warmteontwikkeling in de kabels, daarom werken hoogspanningsmasten ook op een heel hoge spanning zodat er zo min mogelijk energie verloren gaat in de kabels zelf. Analoog hieraan betekent 10.000 IOps dat je processor hard(er) moet werken om al die I/O opdrachten te versturen, en kunnen er allerlei bottlnecks ontstaan, terwijl 10 IOps voor de langzaamste processor een peulenschil is.

Hoe IOps zich tot latency en doorvoersnelheid verhoud, kan ik het beste uitleggen aan de hand van visuele voorbeelden. Pas dan snap je waarom men niet altijd gewoon MB/s zegt ipv IOps en latency. Maar dat wordt een lang verhaal als ik het goed en duidelijk wil uitleggen, dus bewaar ik dat liever voor een storageblog in de toekomst. Die houd je nog van mij te goed. :)
Pagina: 1