Linux patikrinti disko greitį. Kaip išmatuoti standžiojo disko greitį

Originalus: išbandykite USB ir ssd diskų skaitymo / rašymo greitį naudodami komandą dd Linux sistemoje
Autorius: Sidabrinis mėnulis
Paskelbimo data: 2014 m. liepos 12 d
Vertimas: N.Romodanov
Perkėlimo data: 2014 m. spalio mėn

Įrenginio greitis

Įrenginio greitis matuojamas vienetais, nurodant, kiek duomenų jis gali nuskaityti arba įrašyti per laiko vienetą. Komanda dd yra paprastas įrankis komandinė eilutė, kuris gali būti naudojamas nuskaityti ir įrašyti diske esančius savavališkus duomenų blokus ir išmatuoti duomenų perdavimo greitį.

Šiame straipsnyje mes naudosime komandą dd norėdami patikrinti USB ir ssd įrenginių skaitymo ir rašymo greitį.

Duomenų perdavimo greitis priklauso ne tik nuo disko, bet ir nuo sąsajos, per kurią jis prijungtas. Pavyzdžiui USB jungtis 2.0 maksimalus funkcinis greičio apribojimas yra 35 MB/s, todėl net ir prijungus didelės spartos USB 3 atmintinę prie usb 2 prievado, greitis bus apribotas iki mažesnės vertės.

Tas pats pasakytina ir apie SSD įrenginį. SSD įrenginys prijungtas per SATA prievadus, kurių versijos yra skirtingos. Sata 2.0 maksimalus teorinis greičio apribojimas yra 3 Gbps, tai yra apie 375 MB/s. Nors SATA 3.0 palaiko dvigubai didesnį greitį.

Bandymo metodas

Sumontuokite diską ir eikite į jį iš terminalo lango. Tada naudokite komandą dd, kad pirmiausia parašykite failą, kurį sudaro fiksuoto dydžio blokai. Tada perskaitykite tą patį failą naudodami tą patį bloko dydį.

Bendra dd komandos sintaksė yra tokia

Dd if=kelias/į/įvesties_failas/kelias/į/išvesties_failą bs=bloko_dydis count=blokų_skaičius

Rašydami į diską, mes tiesiog skaitome iš /dev/zero, kuris yra begalinio skaičiaus baitų šaltinis. Skaitydami iš disko, perskaitome anksčiau parašytą failą ir siunčiame į /dev/null, kurio iš tikrųjų nėra. Viso proceso metu komanda dd stebi ir praneša apie perdavimo greitį.

SSD įrenginys

Mūsų naudojamas SSD įrenginys yra „Samsung Evo 120GB“ SSD diskas. Tai pradinio lygio ssd įrenginys, susijęs su biudžetu, taip pat mano pirmasis SSD diskas. Tai taip pat vienas produktyviausių kietojo kūno diskai iš turimų rinkoje.

Šiame bandyme ssd diskas prijungtas prie sata 2.0 prievado.

Įrašymo greitis

Pirmiausia įrašykime į ssd

$ dd if=/dev/zero of=./largefile bs=1M count=1024 1024+0 įrašų iš 1024+0 įrašų iš 1073741824 baitų (1,1 GB) nukopijuota, 4,82364 s, 223 MB/s

Bloko dydis iš tikrųjų yra gana didelis. Galite pabandyti naudoti mažesnį dydį, pvz., 64k ar net 4k.

Skaitymo greitis

Dabar, priešingai, skaitykite tą patį failą. Tačiau pirmiausia išvalykite atminties talpyklą, kad įsitikintumėte, jog failas iš tikrųjų nuskaitomas iš disko.

Norėdami išvalyti talpyklą, paleiskite šią komandą

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

Dabar perskaitykite failą

$ dd if=./largefile of=/dev/null bs=4k 165118+0 įrašų iš 165118+0 įrašų iš 676323328 nukopijuotų baitų (676 MB), 3,0114 s, 225 MB/s

USB įrenginys

Šiame teste išmatuosime įprastų USB atmintinių skaitymo greitį. Prietaisai jungiami prie standartinių usb 2 prievadų.Pirmasis įrenginys yra sony 4gb usb atmintinė, o antrasis - stroncio 16gb.

Pirmiausia prijunkite įrenginį ir pritvirtinkite taip, kad jį būtų galima skaityti. Tada iš komandinės eilutės eikite į prijungtą katalogą.

Sony 4GB įrenginys – įrašymas

Šiame teste komanda dd naudojama įrašyti 10 000 duomenų po 8 KB į vieną failą diske.

# dd if=/dev/zero of=./largefile bs=8k count=10000 10000+0 įrašų 10000+0 įrašų iš 81920000 baitų (82 MB) nukopijuota, 11.0626 s, 7.4 MB/s

Rašymo greitis yra apie 7,5 MB/s. Tai mažas skaičius.

Sony 4GB įrenginys – skaitymas

Tas pats failas skaitomas norint patikrinti skaitymo greitį. Norėdami išvalyti talpyklą, paleiskite šią komandą

$ sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"

Dabar perskaitykite failą naudodami komandą dd

# dd if=./largefile of=/dev/null bs=8k 8000+0 įrašų 8000+0 įrašų iš 65536000 baitų (66 MB) nukopijuota, 2.65218 s, 24.7 MB/s

Skaitymo greitis yra maždaug 25 MB/s, kuris yra daugiau ar mažiau standartinis pigiems USB atmintiniams.

USB 2.0 teorinis didžiausias signalų perdavimo greitis yra 480 Mbps arba 60 Mbps. Tačiau dėl įvairių apribojimų didžiausias pralaidumas ribojamas iki maždaug 280 Mbps arba 35 Mbps. Be to, tikrasis greitis priklauso nuo „flash drive“ kokybės, taip pat nuo kitų veiksnių.

Ir kadangi aukščiau aprašytas USB įrenginys buvo prijungtas prie USB 2.0 prievado ir buvo pasiektas 24,7 MB / s skaitymo greitis, o tai nėra labai blogai. Tačiau rašymo greitis gerokai atsilieka.

Dabar atlikime tą patį testą su Strontium 16gb lazdele. „Strontium“ yra dar vienas prekės ženklas, gaminantis labai pigius USB atmintukus, tačiau šios atmintinės yra patikimos.

Rašymo greitis Strontium 16gb įrenginiui

# dd if=/dev/zero of=./largefile bs=64k count=1000 1000+0 įrašų 1000+0 įrašų iš 65536000 baitų (66 MB) nukopijuota, 8,3834 s, 7,8 MB/s

Strontium 16gb įrenginio skaitymo greitis

# sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # dd if=./largefile of=/dev/null bs=8k 8000+0 įrašų 8000+0 įrašų iš 65536000 baitų (66 MB) nukopijuotas, 2,90366 s, 22,6 MB/s

Duomenų skaitymo greitis yra lėtesnis nei „Sony“ įrenginio.

Norėdami nustatyti disko įrašymo greitį, konsolėje turite paleisti šią komandą:

sinchronizuoti; dd if=/dev/zero of=tempfile bs=1M count=1024; sinchronizuoti

Komanda įrašo laikiną 1 MB dydžio failą 1024 kartus ir jos darbo rezultatas bus tokių duomenų išvestis

Gauta 1024+0 įrašų Išsiųsta 1024+0 įrašų, nukopijuota 1073741824 baitai (1,1 GB), 15,4992 s, 69,3 MB/s

Norėdami nustatyti disko skaitymo greitį, konsolėje turite paleisti šią komandą:

Laikinasis failas, sugeneruotas naudojant ankstesnę komandą, yra talpykloje saugomas buferyje, o tai savaime padidins skaitymo greitį ir bus daug didesnis nei faktinis skaitymo greitis tiesiai iš kietasis diskas. Norėdami gauti tikrą greitį, pirmiausia turite išvalyti šią talpyklą.

Norėdami nustatyti skaitymo iš disko iš buferio greitį, konsolėje turite paleisti šią komandą:

Dd if=tempfile of=/dev/null bs=1M count=1024

Ankstesnės komandos išvestis:

Gauta 1024+0 įrašų. Išsiųsta 1024+0 įrašų, nukopijuota 1073741824 baitai (1,1 GB), 15 446 s, 69,5 MB/s

Norėdami išmatuoti tikrąjį skaitymo iš disko greitį, išvalykite talpyklą:

sudo /sbin/sysctl -w vm.drop_caches=3

Komandos išvestis:

vm.drop_caches = 3

Išvalę talpyklą atliekame skaitymo greičio testą:

Dd if=tempfile of=/dev/null bs=1M count=1024 Gauta 1024+0 įrašų 1024+0 išsiųstų įrašų nukopijuota 1073741824 baitai (1,1 GB), 16,5786 s, 64,8 MB/s

Skaitymo / rašymo greičio bandymas išoriniame diske

Norėdami patikrinti bet kurio išorinio HDD, USB atmintinės ar kitos keičiamos laikmenos greitį, arba Failų sistema nuotolinio kompiuterio (vps / vds), turite eiti į prijungimo tašką ir paleisti aukščiau pateiktas komandas.

Arba vietoj tempfile, žinoma, galite parašyti kelią į prijungimo tašką taip:

sinchronizuoti; dd if=/dev/zero of=/media/user/USBFlash/tempfile bs=1M count=1024; sinchronizuoti

Taip pat turėtumėte nurodyti, kad aukščiau pateiktos komandos naudoja laikinojo failo šablono failą. Pasibaigus bandymams nepamirškite jo ištrinti.

HDD greičio testas naudojant hdparm įrankį

hdparm yra Linux įrankis, kuri leidžia greitai sužinoti skaitymo greitį iš HDD.

Norėdami pradėti matuoti skaitymo greitį iš standžiojo disko, konsolėje turite paleisti šią komandą:

sudo hdparm -Tt /dev/sda

Komandų išvestis konsolėje:

/dev/sda: laiko nuskaitymas talpykloje: 6630 MB per 2,00 sekundę = 3315,66 MB/sek Laiko nuskaitymo buferinis diskas: 236 MB per 3,02 sekundę = 78,17 MB/sek

Tai viskas. Taigi galėjome sužinoti mūsų kietojo disko našumą ir apytiksliai įvertinti jo galimybes.

Reikia perskaityti vadovą (man fio), bet jis duos tikslius rezultatus. Atminkite, kad dėl bet kokio tikslumo turite tiksliai nurodyti, ką norite išmatuoti. Keli pavyzdžiai:

Nuoseklus SKAITYMO greitis su dideliais blokais

Fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=read --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync= 10000 --jodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Nuoseklus RAŠYMO greitis su dideliais blokais(jis turėtų būti šalia numerio, kurį matote savo disko specifikacijose):

Fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=write --size=500m --io_size=10g --blocksize=1024k --ioengine=libaio --fsync= 10000 --jodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Atsitiktinis 4K skaitymas QD1(tai skaičius, kuris tikrai svarbus našumui realiame pasaulyje, nebent žinote geriau):

Fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randread --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync= 1 --jodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Mišrus atsitiktinis 4K skaitymas ir rašymas QD1 su sinchronizavimu(tai yra blogiausias skaičius, kurio turėtumėte tikėtis iš savo disko, paprastai mažiau nei 1 % duomenų lape nurodytų skaičių):

Fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randrw --size=500m --io_size=10g --blocksize=4k --ioengine=libaio --fsync= 1 --jodepth=1 --direct=1 --numjobs=1 --runtime=60 --group_reporting

Padidinkite argumentą --size, kad padidintumėte failo dydį. Naudojant didesnius failus gali sumažėti gaunamas skaičius, priklausomai nuo disko technologijos ir programinės įrangos. Maži failai duos "per gerus" rotacinių laikmenų rezultatus, nes skaitymo galvutės nereikia tiek daug judėti. Jei jūsų įrenginys beveik tuščias, naudodami pakankamai didelį failą, kad beveik užpildytų diską, kiekvieno bandymo elgsena bus blogiausia. SSD atveju failo dydis nėra toks svarbus.

Tačiau atminkite, kad kai kurioms laikmenoms failo dydis nėra toks svarbus, kaip bendras per trumpą laiką įrašytų baitų skaičius. Pavyzdžiui, kai kurių SSD diskų veikimas gali būti žymiai greitesnis su ištrintais blokais arba gali turėti mažą SLC blykstės sritį, kuri naudojama kaip rašymo talpykla, o našumas pasikeičia, kai SLC talpykla yra pilna. Kitas pavyzdys, Seagate SMR HDD turi apie 20 GB PMR talpyklos sritis, kurios našumas yra gana didelis, tačiau kai ji bus pilna, rašymas tiesiai į SMR sritį gali sumažinti našumą iki 10 % nuo originalo. Žinoma, viskas priklauso nuo jūsų darbo krūvio: jei jūsų rašymo prieiga yra su ilgomis delsomis, leidžiančiomis įrenginiui išvalyti vidinę talpyklą, trumpesnės bandymo sekos geriau atspindės jūsų realų našumą. IO, turite padidinti parametrus --io_size ir --runtime. Atkreipkite dėmesį, kad kai kurios laikmenos (pvz., dauguma „Flash“ įrenginių) ) dėl tokio bandymo susidėvės. Mano nuomone, jei kuris nors įrenginys yra pakankamai prastas, kad neatliktų tokio tipo bandymų, jokiu būdu jis neturėtų būti naudojamas vertingiems duomenims laikyti.

Be to, kai kurie aukštos kokybės SSD įrenginiai gali turėti dar protingesnius nusidėvėjimo niveliavimo algoritmus, kai vidinėje SLC talpykloje yra pakankamai išmaniųjų duomenų, kad būtų pakeisti duomenys, kurie perrašomi bandymo metu, jei jie pasiekia tą pačią adresų erdvę (ty bandomąjį failą). yra mažesnė nei visa SLC talpykla). Tokiems įrenginiams failo dydis vėl tampa svarbus. Jei jums reikia tikrojo darbo krūvio, geriausia išbandyti su failų dydžiais, kuriuos iš tikrųjų matysite realiame gyvenime. Priešingu atveju jūsų skaičiai gali atrodyti per geri.

Atminkite, kad fio sukurs reikiamą laikinąjį failą pirmą kartą paleidus. Jis bus užpildytas atsitiktiniais duomenimis, kad būtų išvengta pernelyg gerų skaičių iš įrenginių, kurie sukčiauja suglaudindami duomenis prieš įrašydami juos į nuolatinę saugyklą. Aukščiau pateiktuose pavyzdžiuose laikinas failas bus vadinamas fio-tempfile.dat ir bus saugomas dabartiniame darbiniame kataloge. Taigi pirmiausia turėtumėte pereiti į katalogą, kuris yra prijungtas prie įrenginio, kurį norite išbandyti.

Jei turite gerą SSD ir norite matyti dar didesnį skaičių, padidinkite --numjobs aukščiau. Tai apibrėžia skaitymo ir rašymo lygiagretumą. Visuose aukščiau pateiktuose pavyzdžiuose numjobs nustatytas į 1, todėl testas yra susijęs su vieno sriegio proceso skaitymu ir rašymu (galbūt su eile, nustatyta jodeptu). Aukštos klasės SSD diskai (pvz., Intel Optane) turėtų gauti didelius skaičius net ir nepadidinus skaičiaus (pvz., 4 turėtų pakakti, kad būtų gauti didžiausi specifikacijų skaičiai), tačiau kai kuriems „Enterprise“ SSD diskams reikia pereiti nuo 32 iki 128 norint gauti specifikacijų numerius, nes tų įrenginių vidinė delsa yra didesnė, tačiau bendras pralaidumas yra beprotiškas.

mob_info