Tato příručka vás naučí, jak zjistit rychlost přenosu dat na pevném disku v Linuxu. Jinými slovy, identifikujeme, jak rychle váš pevný disk dodává data v operačních systémech Linux a Unix.
Budeme také mluvit o dalších užitečných věcech, jako je kolik sektorů dokáže HDD přečíst najednou, funkce předčítání, akustický režim, zpětný zápis do mezipaměti a benchmarking HDD atd.
Pro účely této příručky budeme používat hdparm
nástroj příkazového řádku pro kontrolu rychlosti čtení a zápisu pevného disku a testování výkonu pevného disku.
Pro případ, že by vám to uniklo, už jsme použili hdparm
nástroj k vyhledání podrobností o jednotce pevného disku v Linuxu. Nyní použijeme stejný hdparm
nástroj pro měření přenosové rychlosti pevného disku.
Důležité upozornění
I když hdparm
nabízí značné výhody pro zvýšení výkonu disku, je také EXTRÉMNĚ NEBEZPEČNÝ . Velmi pravděpodobně povede k masivní ztrátě dat při zneužití některých parametrů. Dokumentace hdparm doporučuje, že NEMĚLI BYSTE ZA ŽÁDNÝCH OKOLNOSTÍ POUŽÍVAT NĚKTERÉ PŘÍKAZY . Takže jsem v této příručce vyloučil takové nebezpečné příkazy. Ještě důležitější je, že se vždy doporučuje zálohovat pevný disk před testováním pevného disku pomocí hdparm
na vašem systému Linux.
Najděte rychlost přenosu dat pevného disku v Linuxu
Chcete-li zkontrolovat rychlost přenosu dat na HDD v Linuxu, spusťte "hdparm"
příkaz s -t
příznak jako níže:
$ sudo hdparm -t /dev/sda
Ukázkový výstup:
/dev/sda: Timing buffered disk reads: 246 MB in 3.00 seconds = 81.97 MB/sec
Jak vidíte, rychlost přenosu dat je 81,97 MB za vteřinu. Ujistěte se, že na pozadí neběží žádné jiné programy.
Spusťte hdparm
povel alespoň dvakrát nebo třikrát a z výsledků vypočítejte průměrnou rychlost přenosu dat vašeho disku.
Jak můžete vidět na výše uvedeném výstupu, linuxové jádro při přenosu dat ukládá data získaná z HDD do vyrovnávací paměti. Pokud chcete měřit přesnější rychlost přenosu dat, použijte:
$ sudo hdparm -t --direct /dev/sda
Ukázkový výstup:
/dev/sda: Timing O_DIRECT disk reads: 242 MB in 3.02 seconds = 80.21 MB/sec
Nyní hdparm
program nebude používat vyrovnávací paměť a bude číst data přímo z HDD. Jak jste si všimli ve výše uvedeném výstupu, přenosová rychlost se bez vyrovnávací paměti snížila.
Hdparm
bude vždy číst data od začátku paměťových zařízení. Pokud chcete hdparm
pro čtení dat z jiné oblasti úložného zařízení můžete použít "offset"
parametr jako níže.
$ sudo hdparm -t --direct --offset 10 /dev/sda
Zde 10
znamená počet gigabajtů k přeskočení. Podle výše uvedeného příkazu, prvních 10 GB
bude při čtení dat z disku přeskočen. Na 20GB
disk, výše uvedený příkaz doručí data ze středu disku.
Ukázkový výstup:
dev/sda: Timing O_DIRECT disk reads (offset 10 GB): 244 MB in 3.01 seconds = 81.15 MB/sec
Porovnejte přenosovou rychlost HDD s hodnotami offsetu a bez nich. Když jsme použili "offset"
parametru ve druhém příkazu se přenosová rychlost snížila. Zdá se tedy, že pevné disky doručují data z vnějších oblastí disků trochu pomaleji.
Zjistěte, kolik sektorů čte pevný disk
Obvykle bude pevný disk číst několik sektorů současně, aby se urychlil přenos dat. Tuto hodnotu zjistíte spuštěním:
$ sudo hdparm -I /dev/sda
V části "Capabilities"
sekce, uvidíte výstup jako níže.
[...] Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: 254 Recommended acoustic management value: 208, current value: 208 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 [...]
Podle výše uvedeného výstupu můj hdd čte 16 sectors
najednou.
Některé moderní HDD mohou sektory načíst předem. Tato funkce se nazývá "read ahead"
. Tuto hodnotu můžete najít pomocí "-a"
příznak jako níže:
$ sudo hdparm -a /dev/sda
Ukázkový výstup:
/dev/sda: readahead = 256 (on)
Jak vidíte na výše uvedeném výstupu, hdd umí číst 256
sektory předem.
Uveďte HDD do tichého režimu, abyste prodloužili přístupovou dobu
U některých moderních pevných disků můžeme zpomalit pohyb hlavy. Zpomalení pohybu hlavy sníží hladinu hluku a prodlouží dobu přístupu.
Chcete-li zkontrolovat, zda váš HDD podporuje tento "acoustic mode"
feature, run:
$ sudo hdparm -M /dev/sda
Pokud váš disk podporuje akustický režim, měli byste mít výstup jako níže.
/dev/sda: acoustic = 208 (128=quiet ... 254=fast)
Aktuální hodnota akustického režimu je 208
v mém systému. Hodnoty akustického režimu lze nastavit v rozmezí 128
na 254
.
Chcete-li přepnout pevný disk do tichého režimu, spusťte:
$ sudo hdparm -M 128 /dev/sda
Chcete-li zvýšit rychlost pohybu hlavy, spusťte:
$ sudo hdparm -M 254 /dev/sda
Vezměte prosím na vědomí, že váš operační systém by měl tuto funkci podporovat.
Pokud tuto funkci nepodporuje, uvidíte toto:
dev/sda: acoustic = not supported
Ukládání zpětného zápisu do mezipaměti
Když je povolen režim ukládání do mezipaměti se zpětným zápisem, hdd uloží data, která mají být zapsána, do vyrovnávací paměti. Tímto způsobem může hdd zapisovat rychleji.
Chcete-li ověřit, zda je povolen režim ukládání do mezipaměti zpětného zápisu, použijte příznak "-W".
$ sudo hdparm -W /dev/sda
Ukázkový výstup:
/dev/sda: write-caching = 1 (on)
Pokud je výstupní hodnota 1, je povolena funkce zpětného zápisu do mezipaměti. Pokud je 0, ukládání zpětného zápisu do mezipaměti je zakázáno. Můžete jej povolit pomocí příkazu:
$ sudo hdparm -W1 /dev/sda
Pokud hdparm nemůže tuto funkci aktivovat, ujistěte se, že je ve vašem BIOSu povolena funkce ukládání zpětného zápisu do mezipaměti.
Chcete-li jej zakázat, jednoduše použijte:
$ sudo hdparm -W0 /dev/sda
Přestože ukládání do mezipaměti zvyšuje rychlost zápisu, v některých situacích se nedoporučuje.
Například při náhlém výpadku napájení by se data ve vyrovnávací paměti trvale ztratila. Při spouštění databázových programů, jako je PostgreSQL, byste tedy neměli povolit funkci ukládání zpětného zápisu do mezipaměti.
Benchmark pevný disk z příkazového řádku
Chcete-li porovnat pevný disk a otestovat rychlost čtení disku, použijte velká písmena "T"
a malá písmena "t"
příznaky společně jako níže.
$ sudo hdparm -Tt /dev/sda
Ukázkový výstup:
/dev/sda: Timing cached reads: 7232 MB in 1.99 seconds = 3629.42 MB/sec Timing buffered disk reads: 250 MB in 3.01 seconds = 82.99 MB/sec
Opakujte tento příkaz alespoň 2-3krát, abyste získali smysluplný výsledek.
Další podrobnosti naleznete na manuálových stránkách.
$ man hdparm
Srovnání pevného disku pomocí grafického nástroje Disky GNOME
Pokud se vám nelíbí způsob příkazového řádku, Disky GNOME Program GUI nám také umožňuje porovnávat pevné disky.
Otevřete Disky z nabídky nebo pomlčky. Vyberte disk, který chcete porovnat, klikněte na tři tečky a zvolte "Benchmark Disk" možnost.
Klikněte na Spustit srovnávání možnost spuštění benchmarkingu:
Závěr
V této příručce jsme diskutovali o tom, jak zjistit rychlost přenosu dat na pevném disku v Linuxu (tj. jak rychle pevný disk dodává data). Podívali jsme se také na to, jak testovat pevný disk z režimu příkazového řádku a grafického režimu pomocí nástroje Gnome Disks GUI.
Vybraný obrázek od Pixabay.