Jak porównywać wydajność dysku na Linux

Jak porównywać wydajność dysku na Linux

Właśnie kupiłem najnowsze i najlepsze - a szczególnie najszybsze - SDD? Lub zaktualizował kartę pamięci MicroSD telefonu? Zanim zaczniesz korzystać z nowego, błyszczącego nowego sprzętu, możesz uruchomić kontrolę wydajności na dysku. To prędkość zapisu i odczytu do specyfikacji producenta? Jak Twoja wydajność porównuje się z wydajnością innych? Czy to 1 TB Flash Drive, który kupiłeś na stronie aukcyjnej z Chin, naprawdę tak szybko, jak to mówi, że tak było? Poznajmy!

W tym samouczku nauczysz się:

  • Jakie CLI (interfejs wiersza poleceń: Twoje Bash lub inne środowisko terminalowe) Dostępne są narzędzia do pomiaru wydajności dysku
  • What GUI (graficzny interfejs użytkownika: narzędzie do pomiaru wydajności dyska)
  • Jak skutecznie zmierzyć wydajność dysku w prosty sposób
  • Odkryj i uczą się z różnymi przykładami pomiaru wydajności dysku
  • Jak zrozumieć jakość posiadanego sprzętu dysku/flash
Jak porównywać wydajność dysku na Linux

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Dowolne GNU/Linux
Oprogramowanie Nie dotyczy
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Jak porównywać wydajność dysku w systemie Linux - CLI

Aby rozpocząć, podłącz dysk do komputera. Jeśli jest to dysk SSD (napęd solidny) lub dysk twardy (napęd na dysku twardego), będziesz chciał wyłączyć komputer, wstawić dysk i ponownie uruchomić system. W przypadku kart SD zwykle będziesz korzystać z czytnika kart SD, którego możesz wstawić za pośrednictwem portu USB do komputera. W przypadku dysków pamięci USB/Flash po prostu wstaw je za pośrednictwem portu USB do komputera.

Następnie przejdź do swojego monitora terminal/polecenia (na Ubuntu
Na przykład możesz to zrobić, po prostu klikając Zajęcia U góry po lewej stronie ekranu> Typ Terminal i kliknij ikonę terminalu).

W wierszu poleceń type LSBLK:

$ lsblk | GREP SDC SDC 8:32 1 119.Dysk 3G 0 

Tutaj wykonujemy lsblk: Możesz to przeczytać jako LS Blk: I.mi. Wykonaj listę podobną do LS („Lista katalogów”) na wszystkich objętościach luzem (BLK).

Jak widać, jest 119.3G Dostępny jazda. Ta jazda jest sprzedawana jako 128 GB i jest to główna marka. Często zdarza się, że dysk o pojemności 128 GB pokazuje się jako tylko ~ 115-120 g w lsblk. To dlatego, że lsblk da ci wynik Gibibyte (1 gibibyte = 1073700000 bajtów) Podczas gdy producenci napędowe sprzedają swoje dyski za pomocą standardu „gigabajt” (a Gigabajt = 1000000000 bajtów).

W tym przypadku widzimy, że działa to prawie idealnie, gdy patrzymy na rozmiar bajtów:

$ lsblk -b | GREP SDC SDC 8:32 1 128043712512 0 Dysk 


I 119.3 (jak donosi LSBLK) = 119.3 x 1073700000 = 128092410000. Więc kiedy kupisz następny dysk, przeczytaj drobny wydruk z tyłu i sprawdź, czy używają one „1000” bajtów na kilobyte, czy „1024” bajtów na standard kibibyte. Prawie zawsze będzie to poprzedni.

Niektórzy producenci SD zawierają nawet rozmiar zarezerwowanego specjalnego obszaru do wyrównywania zużycia na karcie SD jako głównej przestrzeni dysku, ale taka przestrzeń nie jest dostępna dla użytkownika i możesz zakończyć się na przykład tylko 115 g, pokazującym jako użyteczne. Kupujący strzeż się.

Kiedy wykonujesz lsblk Po raz pierwszy będziesz chciał poświęcić trochę czasu na obejrzenie różnych dostępnych dysków. Najłatwiejszym sposobem zlokalizowania określonego głośności, na przykład właśnie włożonego dysku flash, jest poszukiwanie rozmiaru, który w przybliżeniu odpowiada rozmiarowi wstawionego dysku.

Teraz, gdy wiemy, że nasz nowy dysk jest oznaczony SDC (Używa Linux SDA,SDB,SDC itp. Według dysków wykrytych podczas uruchamiania i/lub wstawionego) wiemy również, gdzie znajduje się deskryptor pliku urządzenia dla tego urządzenia (zawsze jest on w /Dev):

$ ls /dev /sdc /dev /sdc 

Ponadto, gdyby na dysku były już partycje, pokazywałoby to inaczej, w ten sposób:

$ lsblk -b | GREP SDC SDC 8:32 1 128043712512 0 DISK └─SDC1 8:33 1 128042663936 0 Część 

Możesz zobaczyć, jak ma dysk (/dev/sdc - wskazane przez „dysk”) i pierwszą partycję (/dev/sdc1 - wskazane przez „część”). Logicznie partycja jest nieco mniejsza niż całkowity rozmiar dysku z powodu wyrównania/zarezerwowanego miejsca dla tabeli partycji itp.

Wreszcie, jeśli masz inne rodzaje urządzeń do przechowywania/dysku, na przykład dysk NVME, może to pokazać na przykład jako:

$ lsblk | GREP NVME NVME0N1 259: 0 0 701.3G 0 DISK ├�NVME0N1P1 259: 1 0 512m 0 część /boot /efi ├─nvme0n1p2 259: 2 0 732m 0 część /boot └tvme0n1p3 259: 3 0 700G 0 części części 0 części 

Tutaj mamy dysk NVME, który prowadzi 3 partycje (P1, P2, P3), a pierwsze dwa to małe partycje rozruchowe, a trzecia to nasza główna partycja danych. Ponieważ ta partycja jest używana, nie będziemy mogli mieć Wyłączny dostęp Lub niezamieszkany dostęp do tego. Stanie się to istotne, gdy omówimy niektóre z poniższych narzędzi.

Uzbrojony w te informacje, teraz łatwo jest uruchomić podstawową kontrolę wydajności dysku na tym dysku za pomocą HDParm:

$ sudo hdparm -ttv/dev/sdc1/dev/sdc1: multCount = 0 (off) ReadOnly = 0 (off) Readhead = 256 (ON) Geometria = 15567/255/63, sektory = 250083328, start = 2048 Odczyty pobieżne odczyty czasu. : 36928 MB w 1.99 sekund = 18531.46 MB/S SEC Bufferowany dysk: 276 MB w 3.02 sekundy = 91.37 MB/s 

Możemy użyć HDParm wykonywać czasy dla celów porównawczych i porównawczych, przy użyciu -T (Wykonaj czas odczytów pamięci podręcznej) i -T (Wykonuj czas odczytów urządzeń) Opcje.

Jak widać, nasze buforowane odczyty są bardzo szybkie (jak można się spodziewać; jest to buforowane) i niekoniecznie są one dobrą liczbą do przejścia, chyba że testujesz wydajność pamięci podręcznej konkretnie.

Bardziej przydatną liczbą są odczyty dyskiesu buforowanego i przychodzą 91.37 MB/s. Nieźle, ponieważ producent tego napędu nawet nie reklamował prędkości zapisu.

Jako podręcznik HDParm (-Tt opcje) stany, Aby uzyskać znaczące wyniki, operacja ta powinna być powtórzona 2-3 razy w systemie nieaktywnym (bez innych aktywnych procesów) z co najmniej kilkoma megabajtami wolnej pamięci, Powinniśmy przeprowadzić kolejny test, aby mieć pewność naszych wyników.

Powtarzający się test, tym razem z tylko buforowanymi odczytami i nieco bardziej szczegółowym wyjściem (osiągnięte przez dodanie opcji „-V”):

$ sudo hdparm -tv/dev/sdc1/dev/sdc1: multCount = 0 (off) ReadOnly = 0 (off) Readhead = 256 (ON) Geometria = 15567/255/63, Sektory = 250083328, start = 2048 Zakłady Dysk buforowany w buforach rozkładowych. Czyta: 276 MB w 3.01 sekund = 91.54 MB/s 

Jak widzimy, liczba zgłoszona przez HDParm jest dość niezawodna.



Do tej pory omówiliśmy tylko prędkości odczytu. Następnie spójrzmy na prędkości zapisu. W tym celu będziemy używać DD.

Najbezpieczniejszym sposobem na to jest najpierw utworzenie systemu plików (poza zakresem tego artykułu - aby ułatwić użycie narzędzia GUI, takiego jak GPARTED), a następnie pomiar wydajności za pomocą DD
. Zauważ, że typ systemu plików (e.G. ext4, fat32,…) wpłynie na wydajność, użyteczność i bezpieczeństwo jazdy.

$ sudo su # cd /tmp # mkdir mnt # Mount /dev /sdc1 ./mnt # zakłada, że ​​jest co najmniej 1 partycja zdefiniowana na /dev /sdc. W takim przypadku jest i jest to partycja ext4. # synchronizacja # echo 3>/proc/sys/vm/drop_caches # dd if =/dev/zero o =/tmp/mnt/temp Oflag = Direct BS = 128K Count = 1G # nasz rzeczywisty test wydajności # rm -f/tmp /MNT/TEMP 

Test wydajności wyświetli się w następujący sposób:

# dd if =/dev/zero o =/tmp/mnt/temp oflag = bezpośredni BS = 128K Liczba = 16K 16384+0 Records w 16384+0 Records 2147483648 bajtów (2.1 GB, 2.0 gib) skopiowane, 32.1541 s, 66.8 MB/s 

Jak widzimy, nasz dysk 128 GB działa dość dobrze z 66.8 MB/s szybkość pisania. Sprawdźmy dwukrotnie za pomocą rozmiaru (plik 4 GB) za pomocą Count = 32K opcja:

# dd if =/dev/zero o =/tmp/mnt/temp oflag = bezpośredni BS = 128K Liczba = 32K 32768+0 Records w 32768+0 Records Out 4294967296 bajtów (4.3 GB, 4.0 gib) skopiowane, 66.7746 s, 64.3 MB/s 

Spójrzmy więc na wszystko, co tu zrobiliśmy.

Najpierw podnieśliśmy przywileje do poziomu sudo/korzenia sudo su, A potem stworzyliśmy MNT folder /TMP. Będzie to nasz „punkt montażowy”, z którego uzyskamy dostęp do naszego napędu 128 GB (po zamontowaniu go za pomocą Mount /dev /sdc1 ./MNT który skutecznie mapuje pierwszą partycję SDC1do ./MNT (/tmp/mnt) folder).

Następnie upewniliśmy się, że wszystkie buforowane plik naszego systemu, w których zsynchronizowano/puste za pomocą synchronizacja. Jest to również przydatne polecenie do wykonania przed umorzeniem i wyciągnięciem napędów USB, ponieważ zapewnia, że ​​wszystkie dane, które były zapisywane na dysku USB, są przepłukane na dysk zamiast pozostawać w pamięci. Jeśli pozbawiniesz dysku na komputerze stacjonarnym/GUI, wykona to synchronizacja dla ciebie w tle przed zdaniem dysk, a następnie powiedzenie, że dysk jest zapisany do usunięcia.

Następnie upewniamy się, że wszystkie pozostałe buformy systemowe są upuszczane z pamięci poprzez wykonywanie Echo 3>/proc/sys/vm/drop_caches. Podczas gdy obie ostatnie dwa polecenia mogą zostać pominięte, zwłaszcza że używamy /dev/zero Jako urządzenie wejściowe (urządzenie wirtualne, które wciąż wysyła zero, gdy jest dostępny), miło jest mieć system „super czysty i gotowy” do wykonania testu wydajności dysku! Zasadniczo upewniamy się, że jest tak mało, jak to możliwe, buforowanie.

Następnie mamy główny test wydajności za pomocą Dd. Składnia Dd jest dość proste, ale różni się od większości innych narzędzi wiersza poleceń. Spójrzmy na to szczegółowo:

  • if =/dev/zero: Użyj urządzenia /dev /zero jako pliku wejściowego
  • o =/tmp/mnt/temp: Użyj pliku „Temp”, znajdującego się na partycji (/dysk), który właśnie zamontowaliśmy pod/tmp/mnt jako plik wyjściowy
  • OFLAG = bezpośredni: Ustaw flagę wyjściową „bezpośredni”, upewniając się, że „używamy bezpośrednich we/wy do danych”, co wyeliminuje większość, jeśli nie wszystkie buforowanie systemu operacyjnego
  • BS = 128K: Napisz do 128 tys. Bajtów jednocześnie. Domyślnie 512 jest bardzo mały i spowodowałoby, że nie maksymalizuje możliwej prędkości przepustowości
  • Count = 16k: skopiuj 16K bloki wejściowe, które wynoszą około 2.1 GB lub 2.0 gib. Możesz dostosować tę zmienną w zależności od wielkości dysku i wymagania dotyczące dokładności wydajności (więcej jest lepsze: bardziej niezawodne)

I wreszcie usuwamy plik, z którym napisaliśmy rm -f/tmp/mnt/temp.

Ważna uwaga i ostrzeżenie
Zauważ, że jeśli twój dysk był pusty i tylko jeśli jesteś pewien, że tak jest całkowicie puste i nie zawiera żadnych cennych danych, Możesz zrobić coś w stylu: o =/dev/sdc1 lub nawet o =/dev/sdc Aby uruchomić ekskluzywny test prędkości dysku / niezamontowany.

To bardzo czysty sposób testowania wydajności dysku, ale (!) Proszę, bądź bardzo ostrożny z użyciem tego, jak dowolne urządzenie lub partycja określona w o =… na pewno zostanie zastąpiony tym, co pochodzi z jakiegokolwiek Jeśli =… określasz. Dbać o siebie.



Jak porównywać wydajność dysku w Linux - GUI Tool

Teraz, gdy wiesz, jak uruchomić test wydajności dysku z wiersza poleceń, używając HDParm (do odczytu) i Dd (do zapisu) Narzędzia terminal/CLI, przyjrzyjmy się następnie użyciu bardziej wizualnego/graficznego narzędzia wewnątrz środowiska komputerów stacjonarnych.

Jeśli używasz Ubuntu, najczęstszego systemu operacyjnego systemu stacjonarnego Linux, w systemie operacyjnym istnieje świetna wydajność dysku używacza. Jest to również jedno z niewielu (a może tylko czytelnie dostępnych) narzędzi do testowania wydajności dysków dostępnych w systemie Linux. Większość innych narzędzi jest oparta na wierszu poleceń lub nie ma równoważników Linux do swoich odpowiedników Microsoft Windows. Na przykład nie ma graficznego odpowiednika dla narzędzia wydajności dysku CrystaldiskMark Windows.

Po prostu kliknij Zajęcia w lewym górnym rogu ekranu i wpisz dyski który pokaże ci Dyski Ikona (pokazuje obraz dysku twardego). Kliknij to samo, aby otworzyć Dyski narzędzie, które ma narzędzie porównawcze konstrukcji dysku.

Po otwarciu użyj pojedynczego kliknięcia, aby wybrać dysk z lewej strony okna dialogowego, a następnie kliknij 3 pionowe kropki w prawym górnym rogu okna dialogowego (po lewej stronie przycisku minimalizują). Stamtąd wybierz opcję Dysk porównawczy… Aby otworzyć narzędzie porównawcze wybranego napędu. Okno „Benchmark” zostanie otwarte.

Kliknij Start Benchmark… Aby otworzyć okno dialogowe konfiguracji nazwane Ustawienia benchmarku. Stąd polecam ustawienie następujących opcji:

Szybkość transmisji:

  • Liczba próbek: 10
  • Rozmiar próbki (MIB): 1000 (to również maksimum)
  • Wykonaj punkt odniesienia zapisu: zaznaczony (najpierw przeczytaj poniższe notatki przed rozpoczęciem testu porównawczego!)

Czas dostępu:

  • Liczba próbek: 1000

Następnie kliknij Rozpocznij odniesienie… Aby rozpocząć test. Rzućmy okiem na ustawienia, które tutaj zrobiliśmy.

Maksymalna wielkość próby to 1000 MIB, a ta (1 048 576 000 bajtów) jest dużą liczbą do przetestowania, ale byłoby świetnie, gdybyśmy mogli wybrać rozmiary takie jak 2 GB i 4 GB, jak to zrobiliśmy w naszym Dd Test narzędzie narzędzi do dyska poleceń powyżej. Weźmy 10 próbek lub innymi słowy 10 przebiegów 1 GB odczytu i napiszu.

To graficzne narzędzie pomiaru wydajności dysku jest bardzo inteligentne, ponieważ nie zniszczy danych na dysku, jak na przykład DD może zrobić, jeśli nieprawidłowo określisz o = Ustawienie jako dysk lub partycja zamiast pliku.

Tak jest - kiedy wybierasz referencję Write (jak to zrobiliśmy tutaj) - jest poprzez odczyt danych z dysku w trybie dostępu wyłącznie (więcej na ten temat), a następnie zapisanie tych samych danych z powrotem do tych samych Lokalizacja! O ile nie nastąpi jakiś bardzo dziwny błąd zapisu, jest mało prawdopodobne, aby kiedykolwiek uszkodziło dane na dysku (choć nie gwarantowane!). Jeśli unosisz się na kursora Wykonaj punkt odniesienia Ustawienie Możesz przeczytać nieco więcej na ten temat.

Ekskluzywny dostęp oznacza po prostu, że wybranie opcji zapisu zapewni, że dysk zostanie niezmonowany przed testem, udostępniając go tylko do tego narzędzia bez możliwości dostępu z dowolnego miejsca, gdy test się uruchomi. Jest to konieczne, aby test zapisu działał poprawnie. W każdym razie tego chciałbyś; I.mi. Nie chcesz uzyskać dostępu do dysku (lub kopiowania danych na/z dysku) podczas działania, ponieważ może to znacznie wypaczać wyniki.

Prosimy również o pobranie 1000 próbek czas dostępu - I.mi. Czas potrzebny na system operacyjny dostęp do dysku. W przypadku kart SD będzie to dość niskie, na przykład nasza karta 128 GB dała średni czas dostępu 0.71 MSEC na 1000 próbek, podczas gdy wolniejszy dysk może powodować 20-100 ms czasu dostępu.

SD VS HDD Różnica wydajności

Powyższy zrzut ekranu pokazuje wyraźne różnice w wyjściu między testem karty SD 128 GB a napędem dyskowym 3TB.

Wniosek

Uzbrojony w umiejętności mierzenia odczytu i pisania dysku, jaki będzie twój następny test wydajności napędu? Daj nam znać w komentarzach poniżej, a jeśli ostatecznie testujesz lub testowanie współczesnego SSD, NVME, SD lub innej pamięci flash, opublikuj niektóre z wyników, które widzisz!

Powiązane samouczki Linux:

  • Jak korzystać z ADB Android Debug Bridge do zarządzania Androidem…
  • Jak zainstalować odtwarzacz Adobe Flash w Linux
  • Zainstaluj Ubuntu 20.04 na Raspberry Pi
  • Test testu porównawczego napędu USB na Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Jak usunąć bluatware z Samsung Android Mobile…
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak odzwierciedlać swój ekran mobilny z Androidem do Linux
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…