Test: ADATA XPG GAMMIX S5 512GB PCIe NVMe Gen3 SSD
Kapitoly článků
Nyní se podíváme na výkon v Linuxu Mint 19.3. Nejprve jsem testoval čtení z disku za pomoci hdparm, ten umí za pomoci parametru –direct číst přímo z disku a obchází se tak cachování dat v samotném systému, jinak můžeme naměřit i rychlosti přesahující rychlost disku. Tento test pouštím desetkrát, abych si ověřil konzistentní rychlost čtení. Před samotným spuštěním testu používám ještě příkaz, který vypne cachování do RAM v rámci Linuxu: hdparm -W 0 /dev/nvme1n1
Při přímém čtení bez cache je GAMMIX S5 je jen o fous rychlejší, než Samsung 960 EVO, víceméně očekávaný výsledek.
dd is your friend
dd je skvělý nástroj, kterým můžeme v konzoli kopírovat data a celé disky dle chuti. Je ale extrémně důležité dát si pozor, co je zdrojový disk a co je cílový, změny jsou typicky nevratné, pokud je nezarazíme včas. Já testuji za pomoci následujícího příkazu, kdy zapisuji 1GB dat na disk, zapisuji samé nuly a zkouším to celkem desetkrát. Výsledek pak zprůměruji. Poté testuji s větším množstvím dat, což trvá déle, než se vše na disk zapíše. To také pouštím desetkrát a každý průchod zapíše 11GB dat.
Také jsem tentokráte zkusil mimo zapisování nul nějaká náhodná data a to za pomoci parametru urandom, problém je v tom, že tato náhodná data generuje procesor jednovláknově, proto jsem využil i další generátor náhodných dat a to sice urandom osolený openssl, což je možné generovat poměrně rychle, zapisuji tisíckrát 24MB dat, u mnoha SSD se tak vyčerpá SLC cache. Také jsem nově vyzkoušel parametr oflag=dsync, který donutí zápis každého 8kb bloku dat na SSD, tím se zcela obchází různé cache a získáme tak reálnější pohled na rychlost zápisu.
Jednotlivé příkazy vypadají takto:
dd if=/dev/zero of=/dev/nvme1n1 bs=1G count=1 oflag=direct
dd if=/dev/zero of=/dev/nvme1n1 bs=1G count=1 oflag=direct oflag=dsync
dd if=/dev/zero of=/dev/nvme1n1 bs=1G count=10 oflag=direct
dd if=/dev/zero of=/dev/nvme1n1 bs=1G count=10 oflag=direct oflag=dsync
dd if=<(openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero) of=/dev/nvme1n1 bs=24M count=1000 oflag=direct iflag=fullblock
ADATA XPG GAMMIX S5 si vede tak trochu různě, někdy překvapivě dobře, jindy hůře dle očekávání.