X-Band Radar

Na webu ATM (Armádní Technický Magazín) se objevila velice zajímavá analýza připravovaného X-Band radaru v Brdech
http://www.atmonline.cz/analyzy/pro/xbr.htm

Výpočet TMTR hodnot disků, Linear a Random Read

TMTR (Theoretical Maximum Transfer Rate – Teoretická maximální přenosová rychlost). Tato hodnota udává maximální výkon disku. Je daná počtem a velikostí sektorů na stopě a počtem otáček. V současné době se již sice nevyrábějí disky s pevným počtem sektorů na stopu, ale tato hodnota se dá použít jako průměr. Druhá generace disků byla navržena v roce 1998 - data na disku obsahují schéma, které se nazývá zone recording a udává počet sektorů na stopu.

Pokud máme tyto základní údaje, tzn. Počet bytů na sektor, počet sektorů na stopu a počet otáček, jsme schopni vypočítat maximální lineární datový tok – data budeme číst postupně (lineárně, stopu za stopou). Pro příklad.
Počet bytů na sektor: 512
Počet sektorů na stopu: 250
Počet otáček: 10000/min

Díky tomu lze spočítat kapacitu stopy – 128000 byte. Toto množství je možné načíst při jednom vystavení hlav. Výsledkem je hodnota přenosu 21.3 MB/s. Tu lze vypočítat podle následujícího vzorce:

TMTR = (byte na sektor * počet sektorů) / ( za jak dlouho se otočí disk)
U novějších disků používajících proměnlivého množství sektorů na stopu je lepší díky hustotě záznamu brát jako teoretickou horní mez velikost datoveho bloku načteného za jedno vystavení hlaviček pevného disku.

TR (Data Transfer Rate). Pomocí této hodnoty, která bere do úvahy i ostatní čekací doby lze získat daleko realističtější údaje, které se více blíží reálným provozním podmínkám.

t(plná stopa) = rotation latency + positioning time + read/write time

Pro disk o 10 000 RTPM a Random read jsou tyto hodnoty přibližně následující:
t(plná stopa) = (za jak dlouho se otočí disk/2)+ (za jak dlouho se otočí disk) + (za jak dlouho se otočí disk)

Pro disk o 10 000 RTPM a Linear read jsou tyto hodnoty přibližně následující:
t(plná stopa) = (za jak dlouho se otočí disk/2)+ (za jak dlouho se otočí disk)

Což znamená, že přenos celé stopy bude potřeba hlavičky vystavit, ale při vystavení se nemusí ocitnout okamžitě nad daným místem. Statistika určuje, že přibližně v polovině případů může být hlavička nad správným místem a v další polovině se musí disk ještě jednou otočit. Průměr minimální a maximální hodnoty bude udávat přibližný čas. Vlastní posuv hlavičky mezi stopami je přibližně stejný jako doba jedné otáčky disku. Nakonec se stopa přečte, což také zabere určitý čas.
Převrácenou hodnoutou tohoto údaje je pak počet IO/sec (počet vstupně výstupních operací, které disk může dosáhnout).

t(plná stopa, random read) = 3ms + 6ms + 6ms = 15ms
t(plná stopa, linear read) = 3ms + 6ms = 9ms
IO random = 1 / 0,015 = 66
IO linear = 1 / 0,009 = 111

Díky tomu lze tedy spočítat, že přenosová rychlost bude při čtení jedné stopy následující:

TR (plná stopa, Random read) = 128 Kbyte / 15 ms = 8.53 MB/s
TR (plná stopa, Linear read) = 128 Kbyte / 9 ms = 14.22 MB/s

Ale může dojít ke čtení menších sektorů, potom se tato hodnota změní:

t(plná stopa) = 3ms + 6ms + 6ms / počet sektorů na stopu = 15 ms

TR (plná stopa, Random read) = 512 byte / 15 ms = 34.13 kB/s
TR (plná stopa, Linear read) = 512 byte / 9 ms = 56.76 kB/s

Díky těmto výpočtům lze s určitostí tvrdit, že při čtení většího objemu dat, které budou lineárně zaznamenané dojde ke značnému nárůstu propustnosti. Bohužel ale ne při každé aplikaci, protože databázové zpracovní probíhá pomocí odlišného přístupu k datům než u souborových systémů.

Odlišnosti přístupu k diskovému prostoru u databází a u souborových systémů jsou viditelné u velikosti vhodných bloků. Například databázové systémy používající blok o velikosti 4KB budou v případě diskového subsystému s bloky velikosti 64KB zbytečně načítat 60KB dat. Databáze používají do krajnosti schopnosti náhodného přístupu k datům díky konkurenci požadavků mezi jednotlivými dotazy. Zbytek načtených dat bude tedy pravděpodobně nevyužit, výsledkem je tedy zbytečné zaplnění vyrovnávacích pamětí.
Naproti tomu souborový server používá zpravidla lineární přístup k datům. Soubor je v ideálním případě uložen lineárně a je maximálně vhodné využívat veškeré vyrovnávací paměti. Načtení 64KB bloku je výhodnější než načtení 4KB bloku (většina souborů se dnes pohybuje ve velikostech MB/GB).

Command Queueing
SCSI disky tuto technologii podporují již několik let. ATA disky s ní začaly s přechodem z paralelního (P-ATA) na seriové (S-ATA) rozhraní, ale jsou zde zajímavé výsledky. Testy na toto téma jsou uveřejněné např. na Tom's hardware
NCQ (Native Command Queueing)
Tato technologie umožňuje vystavovat hlavičky ihned po přečtení daného bloku dat, není zde potřeba dokončení otáčky. Teoreticky je možné přečíst za jednu otáčku až čtyři bloky dat, závisí na jejich vzájemné vzdálenosti od středu a orientaci.
TCQ (Tagged Command Queueing)
Technologie používaná hlavně u SCSI disků. Jedná se mimo jiné o optimalizaci čtení jednotlivých stop pro zajištění minimální zátěže hlav a maximální propustnosti. Původní specifikace pro SCSI umožňovala za jednu otáčku je pak možné načíst až dva bloky dat na různých stopách, v současnosti je to dané schopnostmi disku. TCQ dovoluje maximálně šest požadavků ve frontě sdružených jedním příkazem a 32 požadavků ve frontě na zařízení. Současné disky umoňují přistoupit maximálně k 5 příkazům na jednu otáčku, ale počítalo se zde s určitým vývojem. Proto výsledek uvedený u technologie TCQ nebude odpovídat schopnostem zařízení, ukazuje pouze schopnosti technologie.

512/520B a Advanced Format
Disky po dlouhou dobu podporovaly formát sektoru o velikosti 512/520B. Druhý zde uvedený měl extra rozšířenou paritu, která umožňovala lepší schopnosti detekce a korekce chyb. Počínaje rokem 2010 se objevila technologie využívající formát sektoru 4096Byte (zkráceně 4K), kde se emuluje 512B sektor. V dohledné době by měla být k dispozici technologie 4K Native, která už nebude podporovat emulaci.
Je potřeba si uvědomit, že fyzická organizace sektoru obsahuje nejprve fyzické oddělení od ostatních sektorů (prázdné místo - gap), dále synchronizační puls, informaci o sektoru (zpravidla pořadové číslo), data v sektoru uložená a ECC součet. Sloučení osmi logických sektorů do jednoho znamená ušetření prostoru na úvodní informace a samozřejmě I ušetření prostoru na ECC. Misto 8x50Byte se používá 1x100Byte. Důvodem je princip činnosti ECC (pro vysvětlení doporučuji informace o korekčních kódech a chybové vzdálenosti). Při 1TB disku znamená ušetření uvedených informací nárůst kapacity téměř o třetinu (ušetření pro 4K blok znamenají následujíchí hodnoty - 300B pro ECC, hlavičky přibližně 50B, využití prázdného místa a místa pro synchronizační pulsy okolo 1KB v závislosti na výrobci)

Vliv cache paměti
Je těžké predikovat vliv cache paměti na přístupovou rychlost, cache zajišťuje druhou vrstvu optimalizace (první vrstvou je TCQ/NCQ), navíc při 4K sektorech se se ušetří požadavky ale zároveň se sníží počet možných bloků zde uložených. Pro velké lineární bloky dat postrádá cache smysl, má smysl hlavně při čtení a zápisech menších bloků při random read/write. Dokonce jsou situace, kdy cache může zhoršit propustnost disku, potažmo systému.
Abych si ověřil zda je vše tak jak se píše, otestoval jsem si sám charakteristiky disků. Při testování jsem používal řadiče Areca, kde je možné softwarově vypnout disk cache a mix disků se stejnými parametry od dvou hlavních výrobců - Western Digital a Seagate. Obecně mi při přístupech k souborům zabírajícím několik sektorů (4K block, random read, NCQ, vypnutá hlavní cache) cache paměť ušetřila přibližně v rozmezí od 1,5%-10% času v závislosti na velikosti souboru a jeho umístění. Proto je vliv cache paměti v uvedených výpočtech pouze statistický a je určen pro náhodné čtení na souborových serverech. Uvedená informace postrádá smysl pro databázové server, kde jsou požadavky nikoliv na množství dat, ale na celkové hodnoty IOps.
.


Počet otáček pevného disku za minutu
Velikost diskového bloku v Byte
512/520B u standardního format
4096B nebo 4K pro Advanced Format
Velikost diskového bloku zařízení z hlediska operačního systemu v Byte
Velikost cache pevného disku v Byte - 2/4/8/16/32/64MB
Počet disků

Hodnota IO/s (IOps)
pro jeden disk
Celkem IO/s (IOps)
pro všechny disky
Průchodnost
jednoho disku
Celková průchodnost
všech disků
Celková průchodnost
všech disků s cache
Lineární 640 640 320 KB/s 320 KB/s 335 KB/s
Náhodné 384 384 192 KB/s 192 KB/s 201 KB/s
Náhodné TCQ 15360 15360 8 MB/s 8 MB/s 8 MB/s
Náhodné NCQ 1920 1920 960 KB/s 960 KB/s 1005 KB/s

Lineární - čtení bloků stopu po stopě, bez použití vyrovnávací paměti, pesimistická předpověď.
Náhodné - čtení bloků náhodně napříč stopami, bez použití vyrovnávací pamět, pesimistická předpověďi.
Náhodné TCQ a náhodné NCQ patří mezi optimistické předpovědi, tedy teoretický strop propustnosti.
Technologické maximum bere do úvahy velikost cache paměti a velikosti načítaných bloků, jeho stropem je propustnost sběrnice (není součástí výpočtů). Jedná se také o optimistickou předpověď.

Soubor ve formátu Excel, umožňující snadný výpočet přenosových charakteristik, trochu starší.
- Teoretická rychlost čtení pro Linear a Random Read
- Doba přenosu
- Omezení daná použitou sběrnicí

Hardware, výpočty

Tato sekce je zaměřena na záležitosti okolo popisů architektur a výpočtů jejich charakteristik, dále pak na jakoukoliv oblast IT, kterou lze matematicky popsat.

Powered by Drupal - Design by artinet