Portál AbcLinuxu, 6. května 2025 07:33
V současnosti se jako alternativa u digitálních fotoaparátů/kamer začíná objevovat port USB-C jako alternativa k interním kartám (typicky standardu SDXC, CFast). Pomineme-li určitou nešikovnost připojení externího disku (typicky řešenou jeho montáží na ochrannou klec) a otázku spolehlivosti, zůstává nám zde zajímavý poměr výkon/cena a kapacita/cena ve srovnání s tradičními flash kartami. Na mysli mám rychlé karty se schopností trvalého zápisu v rychlostech řádu stovek MB/s. Záměr vytěžit ze schopností zařízení maximum při postprodukci vede k volbě maximální dostupné kvality záznamu, což v řadě případů je raw formát. Takový záznam může mít například podobu jednotlivých souborů obsahujících zachycené snímky záznamu (např. dng soubory o velikostech v jednotkách/desítkách). Při kombinaci x0MB * x0FPS se dostáváne k nárokům přesahujícím i 500MB/s.
Pro srovnání. CF2.0 ProGrade Digital 512GB má cenu okolo 700US$, SSD Samsung T5 1TB zhruba 200$ (dvojnásobná kapacita za méně než třetinovou cenu), výhoda přítomnosti USB-C u zařízení je zřejmá.
U flash jde pokrok vcelku neúprosně ke zvyšování hustoty záznamu a to nejen zmenšováním buněk v rámci litografie a vrstvení chipů do pouzder, ale i zvyšování počtu bitů (tj. rozlišovaných úrovní) v rámci jedné paměťové buňky. V dobách SLC (Single Level Cell) byl záznam a jeho odolnost na maximu, ale dosahované kapacity byly relativně malé (poměr cena/kapacita vyskoký). Aby se eliminovala nevýhoda přesnějšího (asi i déle trvajícího) záznamu do buněk s více úrovněmi (MLC .. 2bit/cell=4level, TLC .. 3bit/cell=8level, QLC .. 4bit/cell=16level) využívájí výrobci v rámci logiky disku tzv. SLC cache, tj. část volné kapacity SSD se při zápisu použije k rychlému zápisu 1bit/1cell a při jejím zaplnění pak již zápis probíhá cílovým způsobem (nbit/cell podle typu SSD). Jaká je veliost této SLC cache, případně kde se nalézají hodnoty minimálního trvalého zápisu nám může napovědět kontinuální zápis. Otázka životnosti a vliv opotřebení na dosahovaný výkon je bohužel asi na rámec tohoto tématu.
Na nový prakticky nepoužitý USB-C SSD společnosti Samsung model T5 kapacita 1TB jsem provedl dva testy zápisu pomocí dd. V prvním testu byl na SSD zapisován soubor generovaný z /dev/zero, v druhém abych eliminoval vliv případné komprese na silně komprimovatelná data jsem použil náhodně generovaný obsah. Generátor náhodného obsahu dosahoval výkonu na ramdisk cca 1,3GB/s, takže dopad na výkon proti /dev/zero(s cca 3,2GB/s) by s ohledem na dosahované rychlosti SSD neměl být markatní.
Graf zobrazuje hodnoty zapisu z iostat (sekundové intervaly). Horní graf pro zaznám obsahu z /dev/zero, spodní z náhodného obsahu (zapsáno vždy okolo 900GB). Testovací konfigurací bylo Xubuntu 18.04@4.19.20_vanilla na Tr1950X@stock s 4x 8GB DDR4_3200CL14.
Graf rychlosti zápisu přes většinu kapacity SSD. https://www.monitos.cz/tmp/samsung_T5_1TB_IOW.png
Z grafu je patrný náhlý pokles okolo 256.GB kapacity, to by mohlo naznačovat velikost SLC cache. Na grafu je vidět mírný pokles při druhém zápisu (což může jít na vrub větší režie generování random vstupu, případně zpracování nekomprimovatelných dat rámci SSD), důvod těžko určit.
Na trhu se v současnosti vyskytuje řada cenově výhhodných SSD, stavících na TLC/QLC, u nichž se díky SLC cache podaří uspokojit většinu běžných požadavků (kontinuální zápis do řádu jednotek/desítek GB), ale při trvalém zápisu přes celou kapacitu se lze dostat i pod hodnoty za něž by se asi styděl i 2,5" na svých vnitřních stopách. Bohužel zveřejňované testy se dnes omezují na objemově relativně omezené benchmarky, které skutečné schování zamlčí. O nic neříkajících specifikacích výrobců ani nemluvě.
Jaká je Vaše zkušenost s flash médii z pohledu "minimálního výkonu sekvenčního zápisu", pravda za blízko ideálním podmínkám (neznáme IO schopnosti/limity v zařízeních)?
hdparm -t /dev/sdh /dev/sdh: Timing buffered disk reads: 1616 MB in 3.00 seconds = 538.13 MB/sec
hdparm -t /dev/sdh /dev/sdh: Timing buffered disk reads: 1252 MB in 3.00 seconds = 416.78 MB/secTest proběhl za obdobných podmínek jako u Samsungu T5 1TB výše, tentokrát pouze se zápisem náhodného obsahu (opět sekvenční test přes většinu SSD s bs=16M). S průměrnou rychlostí zápisu okolo 140MB/s. Úplný rychlý začátek grafu (~4GB) jde možná na vrub SLC cache na SSD. Následný prudký pokles za peakem možná na vrub zotavování ze zaplněné SLC cache. https://www.monitos.cz/tmp/WDS240G2G0B_16MB_seq_all.png Jak je vidět z grafu, některé sekundové průměry zápisu šly až pod 50MB/s. Z pohledu vyššich rozlišení a bezeztrátovějších kodeků je takové řešení patrně za hranou použitelnosti. Nároky na zápis u výše zmíňované kamery BMPCC4K, uvádí výrobce zde. Výrobce se raději neodvážil uvést nároky pro 4K60p (již při 4K30p jsou velké až dost).
sudo hdparm -tT /dev/nvme1n1 /dev/nvme1n1: Timing cached reads: 24270 MB in 2.00 seconds = 12150.72 MB/sec Timing buffered disk reads: 8424 MB in 3.00 seconds = 2808.00 MB/secŠkoda, že výrobci neumožňují (nebo o tom nevím) volitelně režim SLC-cache u svých SSD vypnout. Umožnilo by se tím asi docílit nižší průměrné rychlosti trvalého zápisu, ale nejspíš s menšími výkyvy. Možná by to mělo pozitivní dopad i na životnost, jelikož by se data do pamětí zapsala hned napoprvé v cílovém TLC módu a ne nadvakrát poprvé v SLC módu).
hdparm -t /dev/nvme0n1 /dev/nvme0n1: Timing buffered disk reads: 7616 MB in 3.00 seconds = 2538.41 MB/sec
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.