Last Updated on 26/09/2023 by administrator
Test rychlosti disku Linux
Test rychlosti disku Linux
Motivace:
Návod ukazuje, jak provést testy rychlosti čtení (read) a zápis (write) na disk.
Pozn. Pro dosažení přesné rychlosti čtení/zápisu, by se níže uvedené testy měly několikrát zopakovat (obvykle 3–5) a tyto výsledne hodnoty zprůměrovat.
Čtení a zápis na disk se bude provádět pomocí dd nástroje .
Implementace:
Test zápisu (write) na disk:
sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync
Výstup příkazu sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync ukazuje, že bylo přečteno 1024 bloků (1024 megabajtů), zapsáno 1024 bloků (1024 megabajtů) a celkový čas kopírování byl přibližně 2,9391 sekundy. Rychlost zápisu byla udána jako 365 MB/s.
1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.9391 s, 365 MB/s
Legenda:
- sync – slouží k synchronizaci cache souborového systému na disku. To zajišťuje, že všechny změny v paměti jsou zapsány na disk před pokračováním.
- if – označuje vstupní zařízení, kterým je /dev/zero, což je speciální zařízení v Linuxu, které generuje nekonečnou sekvenci nulových bajtů.
- of – označuje výstupní soubor, kterým je tempfile.
- bs – určuje velikost bloku (1M znamená 1 megabajt) a „count“ určuje počet bloků. Celý tento příkaz vytvoří soubor tempfile o velikosti 1024 megabajtů (1 gigabajt), který bude obsahovat pouze nuly.
- count určuje počet bloků.
Celý tento příkaz vytvoří soubor tempfile o velikosti 1*1024=1024 megabajtů (1 gigabajt), který bude obsahovat pouze nuly.
Test čtení (read) z bufferu:
Soubor tempfile vytvořený příkazem výše, byl uložený do bufferu a jeho rychlost čtení je mnohem vyšší než skutečná rychlost čtení přímo z disku. Aby byla získáná skutečná rychlost čtení z disku je potřeba vymazat buffer.
Pro test čtení z bufferu, zadat příkaz níže:
dd if=tempfile of=/dev/null bs=1M count=1024
Výstup příkazu sync; dd if=/dev/zero of=tempfile bs=1M count=1024; sync ukazuje, že bylo přečteno 1024 bloků (1024 megabajtů), zapsáno 1024 bloků (1024 megabajtů) a celkový čas kopírování byl přibližně 2,16441 sekundy. Rychlost čtení byla udána jako496 MB/s.
1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.16441 s, 496 MB/s
Legenda:
- if – určuje vstupní soubor, což je tempfile v tomto případě.
- of – určuje výstupní zařízení, což je /dev/null, což je místo, kam lze zapisovat data, která budou zahazena.
- bs – určuje velikost bloku pro čtení a zápis (v tomto případě 1 megabajt).
- count – určuje počet bloků, které budou zpracovány (v tomto případě 1024 bloků, což odpovídá 1024 megabajtům).
Test čtení (read) z disku:
Pro získání skutečné rychlosti je nutné smazat buffer. Příkaz níže nastaví hodnotu na 3, což je hodnota udávající vyčištění bufferu:
sudo /sbin/sysctl -w vm.drop_caches=3
Nyní se provede test čtení z disku:
dd if=tempfile of=/dev/null bs=1M count=1024
Po dokončení testu nezapomenout vymazat soubor tempfile.
USB disk:
Stejný postup testu platí o pro USB disk:
Článek Mount – Jak připojit USB disk v Linuxu.
Test zápisu (write) na USB disk:
sync; dd if=/dev/zero of=/media/usb-drive/tempfile bs=1M count=1024; sync
Test čtení (read) z USB disku:
dd if=/media/usb-drive/tempfile of=/dev/null bs=1M count=1024
Zdroj:
[1] https://www.shellhacks.com/disk-speed-test-read-write-hdd-ssd-perfomance-linux/