Náš vlastní SSD Benchmark: představujeme první nástřel
Programování je skvělá věc, když jsou splněny tři podmínky:
- myslí vám to a víte přesně, jak by měl algoritmus na to či ono vypadat,
- umíte programovat v programovacím jazyce, v němž dokážete zrealizovat vaše potřeby
- máte na to dostatek času.
Čtvrtý bod, tedy že vás za to někdo náležitě finančně odmění, není po pravdě řečeno až tak důležitý. Odměna nemusí mít jen formu financí. Samozřejmě vždy očekáváte, že vám to něco přinese, jen tak pro nic za nic neprogramuje nikdo. Určitou formou odměny může být i výsledek sám o sobě: např. v našem případě existence programu, který nám usnadní testování SSD.
Pro osvěžení paměti, jak může vypadat časově náročný test:
- Test levných 120GB SSD 3. generace s řadičem SandForce - představení (9. 7. 2012)
- Levné 120GB SSD 3. generace s řadičem SandForce - výsledky testů (10. 7. 2012)
V mém případě je první bod splněn, troufám si říci, dokonale. Druhý bod je splněn tak napůl, především nemám příliš velké povědomí o tom, jak se dělá GUI aplikace. To ale pro výsledek není moc důležité. Pokud bychom aplikaci nechtěli šířit a nechali si ji jen pro interní potřeby, může to být klidně konzolovka. No, a třetí bod … tak o tom je škoda mluvit. Času není nikdy nazbyt. Bohužel se kvůli tomu hromada věcí, které chcete zrealizovat, nezrealizuje buďto vůbec, nebo pozdě.
Jak se ale říká, lepší pozdě, nežli později, a tak vám můžeme představit první nástřel. Nebudeme vám ukazovat GUI, protože program žádné nemá. Ukážeme vám rovnou výsledek zpracovaný v grafické podobě. Z programu totiž jako výsledek vypadne .CSV soubor. Ten pak není problém dále zpracovat, např. takto:
Co vidíte? Asi tušíte, stačí se podívat na popisky, ale přeci jen vysvětlíme: vidíte graf představující vývoj hodnoty IOPS v čase v závislosti na množství zapsaných dat, přičemž se zapisují 4KiB bloky a podle množství zapsaných dat za jednotku času se vypočítává hodnota IOPS.
K čemu je taková křivka dobrá? Ukáže vám, jak se s přibývajícím množstvím dat vyvíjí výkon SSD. Zapisují se pseudonáhodná data, a to proto, aby nebylo možné je zkomprimovat a tudíž ukazovaly nejhorší možnou situaci (ta nejlepší, kdy zapisujete samé stejné bajty, moc užitečná není, tím se dá měřit tak nanejvýš rychlost komunikace mezi systémem a SSD).
Nebudeme vám prozrazovat, co to je za SSD, které vygenerovalo uvedený graf. Jen vám řekneme, že jeho kapacita je 120 GB a má řadič SandForce. Jistě z grafu sami poznáte, že jsme do SSD nahrnuli přes půl terabajtu (jednoduše jsme SSD zaplnili a poté začali přepisovat znovu). Kdybychom chtěli věřit kompletní výdrži přepisů, kterou udává výrobce, nebyl by problém za necelé dva týdny čistého času tento konkrétní produkt odvařit (tedy vyčerpat počet přepisů všech buněk osazených flash čipů). Věřte, že máme kombajnmilion chutí to udělat :).
Jaký je tedy výsledek? Zatím máme nástroj, který nám umí říci, jak se bude SSD chovat po delší době (tedy poté, co jej několikrát přepíšeme. Už to je výsledek, který nám zatím žádný dostupný benchmark dát neumí. Znovu říkáme: je to první nástřel, budeme to ladit možná tak dlouho, až daný produkt opravdu odvaříme. Ladění programu na konkrétním SSD je věc náročná, každý nový pokus, z něhož má něco vypadnout (abychom si ověřili, že jdeme správným směrem), vyžaduje provedení Secure Erase, kdy SSD dostaneme do „jako nového“ stavu. Určitě budeme chtít zkoumat výše uvedenou křivku v závislosti na ručně zvoleném overprovisioningu, a především máme v ruce jedno fakt nabušené Enterprise SSD (byť stále SATA), od něhož očekáváme trošku jinou křivku. Pak to začne být zajímavé :).