Menu
Za darmo
Rejestracja
Dom  /  NA/ Sprawdzanie dysku twardego w Linuksie. Jak zmierzyć prędkość dysku twardego Jak przetestować prędkość dysku za pomocą hosta

Sprawdzanie dysku twardego w systemie Linux. Jak zmierzyć prędkość dysku twardego Jak przetestować prędkość dysku za pomocą hosta

Aby określić prędkość zapisu na dysku, musisz uruchomić w konsoli następujące polecenie:

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

Polecenie zapisuje plik tymczasowy 1 MB o rozmiarze 1024 razy, a wynikiem jego działania będzie wyjście takich danych

1024+0 rekordów odebranych 1024+0 rekordów wysłanych skopiowanych 1073741824 bajtów (1,1 GB), 15,4992 s, 69,3 MB/s

Aby określić prędkość odczytu dysku, musisz uruchomić w konsoli następujące polecenie:

Plik tymczasowy, który został wygenerowany przez poprzednie polecenie, jest buforowany w buforze, co samoczynnie zwiększy jego prędkość odczytu i będzie znacznie wyższa niż rzeczywista prędkość odczytu bezpośrednio z samego dysku twardego. Aby uzyskać rzeczywistą prędkość, musisz najpierw wyczyścić tę pamięć podręczną.

Aby określić szybkość odczytu z dysku z bufora, należy uruchomić w konsoli następujące polecenie:

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

Wyjście poprzedniego polecenia:

1024+0 odebranych rekordów 1024+0 wysłanych rekordów skopiowanych 1073741824 bajtów (1,1 GB), 15,446 s, 69,5 MB/s

Aby zmierzyć rzeczywistą prędkość odczytu z dysku, wyczyść pamięć podręczną:

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

Wyjście polecenia:

vm.drop_cache = 3

Po wyczyszczeniu cache wykonujemy test szybkości odczytu:

Dd if=tempfile of=/dev/null bs=1M count=1024 1024+0 rekordów odebranych 1024+0 rekordów wysłanych skopiowanych 1073741824 bajtów (1,1 GB), 16,5786 s, 64,8 MB/s

Wykonywanie testu prędkości odczytu/zapisu na dysku zewnętrznym

Aby przetestować prędkość dowolnego zewnętrznego dysku twardego, dysku flash USB lub innego nośnika wymiennego lub systemu plików zdalnej maszyny (vps / vds), musisz przejść do punktu montowania i wykonać powyższe polecenia.

Lub, zamiast tempfile, możesz oczywiście wpisać ścieżkę do punktu montowania w następujący sposób:

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

Należy również określić, że powyższe polecenia używają tymczasowego pliku tymczasowego. Nie zapomnij go usunąć po zakończeniu testów.

Test prędkości dysku twardego za pomocą narzędzia hdparm

hdparm to narzędzie Linux, które pozwala szybko sprawdzić prędkość odczytu z dysku twardego.

Aby rozpocząć pomiar prędkości odczytu z dysku twardego, musisz uruchomić w konsoli następujące polecenie:

sudo hdparm -Tt /dev/sda

Wyjście poleceń w konsoli:

/dev/sda: Odczyty z pamięci podręcznej taktowania: 6630 MB w 2,00 s = 3315,66 MB/s Odczyty z buforowanego dysku: 236 MB w 3,02 s = 78,17 MB/s

To wszystko. W ten sposób byliśmy w stanie sprawdzić wydajność naszego dysku twardego i z grubsza oszacować jego możliwości.

Teraz podsystemy dyskowe są modernizowane w przyspieszonym tempie w niemal każdej firmie hostingowej. Dyski półprzewodnikowe stały się znaczącym przełomem w poprawianiu wydajności komputerów, w tym sprzętu serwerowego. Faktem jest, że dysk przez wiele lat był wąskim gardłem, co nazywa się „słabym ogniwem” w wydajności dowolnych systemów informatycznych. Innymi słowy, wszystkie inne komponenty — procesor, pamięć RAM, magistrale systemowe, a nawet sieć — przez długi czas były znacznie szybsze i wydajniejsze niż dyski. Dysk SSD zwiększa wydajność każdego urządzenia o około 3-5 razy. Oznacza to, że dowolne aplikacje będą działać kilka razy szybciej, a czasem nawet dziesiątki razy szybciej.

Tak więc hoster oferuje dwie linie taryfowe - SSD i non_SSD. Ty oczywiście bierzesz dysk SSD. Ale jak się upewnić, że hoster naprawdę wydał dysk SSD? W końcu nie ma różnicy w działaniu strony - wszystko będzie dla Ciebie działać na hostingu z dowolnym dyskiem. Oznacza to, że teoretycznie hoster może ci ogłosić, że ma serwery na szybkich dyskach półprzewodnikowych. Ale w rzeczywistości sprzedawać energię na konwencjonalnych tradycyjnych dyskach twardych. I prawdopodobnie nawet o tym nie wiesz.

W końcu dyski SSD są znacznie droższe niż zwykłe dyski. A hosterzy mają duże możliwości, muszą przechowywać terabajty danych. Czy możesz sobie wyobrazić, ile mogą kosztować takie systemy, biorąc pod uwagę, że 1 GB dysku SSD jest około 10 razy droższy niż 1 GB zwykłego dysku?

Co to jest wzmocnienie SSD lub pamięć flashcache?

Ogólnie istnieje system hybrydowy. Podczas korzystania z wielu dysków SSD + HDD. Jednocześnie wszystkie dane są przechowywane na tradycyjnych dużych dyskach. Istnieje specjalne oprogramowanie, które konfiguruje te dyski w specjalną skomplikowaną macierz, w której dysk SSD działa jako pamięć podręczna dla wszelkich danych, które są zapisywane lub odczytywane. W takiej macierzy mamy mały dysk SSD, powiedzmy 120 GB, a potem duży HDD, 2 Tb. Taki pakiet daje prędkość odczytu/zapisu podobną do dysku SSD, ale objętość podobną do HDD. Otóż ​​to. Jednocześnie hoster może łatwo powiedzieć, że ma wszystko na dysku SSD. Uczciwi gospodarze nazywają to wzmocnieniem SSD. Nie wpływa to negatywnie na działanie witryn.

Przetestowałem prędkości dysków z dziesiątkami różnych hostów. Będziesz zaskoczony, ale tylko 1 na 5 hostów zapewnia „uczciwy” dysk SSD.

Przechwytuję te rzeczy za pomocą zrzutów ekranu.

Testy fałszywych dysków SSD z niektórych hostów

Hoster #1

Tutaj widzimy tylko 30 Mb/s na wpis. Jest to normalna prędkość zwykłego dysku twardego. Ale hoster deklaruje to jako dysk SSD.

Hoster №2

Podobny obraz. Ale prędkość czytania jest już trochę lepsza. Być może tak jest z flashcache, ale bardzo przeładowanym. I najprawdopodobniej po prostu macierz RAID konwencjonalnych dysków twardych. Możesz je zbierać w taki sposób, aby wydajność czytania wzrosła 1,5-2 razy.

Hoster №3

Ulubiony gospodarz. Pokazuje ogólnie dzikie wyniki. Dysk twardy jest nie tylko przeciążony dostępami do dysku.

Hoster №4

To właściwie zabawna historia. Zrobiłem audyt klienta serwera, pojawiły się skargi dotyczące hamulców. Sprawdzę dysk.

Oto taki obraz. Piszę do klienta w ten i inny sposób - hoster rażąco oszukuje. Klient biegnie do wsparcia - okazuje się naprawdę. Klient „zapomniał” włączyć dysk SSD podczas przełączania z jednej taryfy na drugą, rozumiesz? Przełącz się, przetestuj jeszcze raz i zobacz, jak pojawił się prawdziwy dysk SSD.

Prawdziwe testy SSD

Teraz, aby zrozumieć różnicę, pokażę wam zrzuty ekranu z testów naprawdę SSD.

Tak to wygląda. Prędkość nagrywania powyżej 100 Mb/s powinna wynosić. To minimum dla dysku SSD. To test z mojego laptopa do pracy, na którym aktualnie piszę ten post. Ma najtańszy dysk SSD 120 Gb. Jak widać, jego prędkość jest 4-5 razy większa niż w przypadku tradycyjnego dysku.

A oto test hostera, który zapewnia prawdziwy dysk SSD.

To zdecydowanie prawdziwy dysk SSD. To jest takie, jakie powinno być. Być może skonfigurowano boost, ale to wciąż dysk SSD i można z tym hosterem żyć.

Jak wykonać test szybkości dysku z hostem?

Używam do tego dd. Jest w każdym Linuksie. Ale należy obchodzić się z nim ostrożnie, w przeciwnym razie istnieje ryzyko zepsucia całego serwera, wszystkich danych na nim zawartych. Ponieważ to narzędzie zapisuje surowe dane do dowolnego określonego urządzenia lub pliku.

Tak więc, do testu zapisu, powinieneś pobrać strumień zer ze specjalnego urządzenia /dev/zero i wysłać go do pliku na testowanym dysku. Dowolny dowolny plik. Na przykład w folderze plików tymczasowych /tmp/test.img

Dd if=/dev/zero of=/tmp/test.img bs=1M count=1024 oflag=dsync

To polecenie utworzy plik o wielkości 1 GB i wyświetli prędkość zapisu.

Szybkość odczytu można od razu sprawdzić, tylko tutaj opcja if powinna wskazywać na utworzony plik i gdzieś w pustkę. W Linuksie jest takie urządzenie /dev/null , na nie skierujemy je:

Dd if=/tmp/test.img of=/dev/null bs=1M count=1024

Ale wcześniej musisz zresetować pamięć podręczną dysku, w przeciwnym razie plik zostanie odczytany za sekundę, a zobaczysz prędkość odczytu w Gb / s. Odbywa się to za pomocą następującego polecenia:

Sysctl vm.drop_cache=3

Następnie przeprowadzamy test czytania z drugim zespołem.

Cóż, na koniec musisz usunąć plik testowy, aby nie zajmował miejsca:

Rm -f /tmp/test.img

Będzie to działać tylko na dedykowanym serwerze lub VPS. I nie na każdym serwerze VPS. Ponieważ różnią się również technologią wirtualizacji. Wielu hosterów nie zapewnia pełnej wirtualizacji (KVM, XEN), ale kontenery (openVZ). Brak dostępu do parametrów jądra, co oznacza, że ​​nie będzie możliwe zresetowanie pamięci podręcznej. Będziesz musiał czytać i zapisywać do różnych plików lub poczekać kilka godzin przed testem odczytu, aż pamięć podręczna dysku zostanie nadpisana innymi danymi. Testowanie szybkości na współdzielonym hostingu jest również dość trudne, ponieważ nie masz tam dostępu do roota. Ale narzędzie dd jest zwykle dostępne dla każdego użytkownika systemu, więc możesz to sprawdzić za pomocą dostępu SSH.


Jeśli masz określoną liczbę dysków twardych, a także dysków flash (pamiec przenosna), istnieje potrzeba określenia ich wydajności, aby określić, do jakich celów ma być wykorzystywane dane urządzenie pamięci masowej. Sprawdzanie szybkości odczytu/zapisu dysków twardych odbywa się zwykle za pomocą hdparm.

hdparm- narzędzie konsoli (wcześniej zawarte w pakiecie hwtools) przeznaczony do przeglądania i regulacji parametrów dysków twardych z interfejsem ATA (równoległy interfejs do podłączenia napędów, dysków twardych i napędów optycznych do komputera).

Parametry dysków twardych ustalane są z naciskiem na niezawodność, nawet na sprzęcie niskiej jakości, a na większości nowoczesnych płyt głównych i dysków twardych można zauważalnie zwiększyć wydajność IDE podsystemy bez narażania niezawodności.

Obecnie nie ma wiarygodnych metod wyznaczania optymalnych parametrów dla urządzeń (z wyjątkiem starannych prób i obserwacji) i nie ma scentralizowanej bazy danych (w którym gromadzone byłyby informacje o obserwacjach doświadczonych użytkowników), to najbezpieczniej jest porównać niektóre parametry ” domyślna"i na ich podstawie wybór urządzenia o najbardziej optymalnych parametrach. Najłatwiej to zrobić za pomocą hdparm zwłaszcza, że ​​jest zawarty w prawie wszystkich nowoczesnych dystrybucjach linux.

Chociaż głównym celem hdparm tuning i optymalizacja, może służyć jako proste narzędzie do przeprowadzania testów, do tego wystarczy wykonanie (hdparm wymaga uprawnień administratora/root do działania):

sudo hdpam -t "nazwa urządzenia"

Na przykład:

sudo hdpam -t /dev/sda

Możesz znaleźć nazwę dysku, uruchamiając:

Fdisk-l

Pożądane jest przeprowadzenie testu przy braku zauważalnej aktywności dysku. Opcja " -t" pozwala na wyświetlenie szybkości sekwencyjnego odczytu danych z dysku, bez opóźnień spowodowanych działaniem systemu plików.

Przeprowadzony test pokaże najwyższą szybkość przesyłania danych dla testowanego dysku. Kontrola odczytu/zapisu odbywa się na samym początku dysku, w jego najszybszej części, więc uzyskane liczby nie odpowiadają zbytnio rzeczywistej prędkości dysku. Najbardziej realistyczny wynik można uzyskać, sprawdzając dysk w losowych punktach, w losowej kolejności... Możesz wykonać taki test za pomocą narzędzia konsoli osoba ubiegająca się o.

osoba ubiegająca się o- narzędzie konsoli, które losowo sprawdza prędkość odczytu / zapisu dysków twardych, z dostępem do dysku w losowej kolejności. W tej metodzie testowania głowica dysku szybko przemieszcza się z jednego miejsca w drugie, odczytując małe fragmenty danych. Proces obejmuje operacje mechaniczne, a dostęp do dysku jest znacznie wolniejszy niż test dostępu sekwencyjnego.

Dowolna metoda weryfikacji zastosowana w osoba ubiegająca się o znacznie bliższe rzeczywistej pracy dysku twardego, a wyniki testów wyglądają bardziej wiarygodnie. Dlatego używając osoba ubiegająca się o bardzo ważne jest przetestowanie całego dysku (/dev/sda), a nie oddzielna sekcja (/dev/sda1, /dev/sda2, /dev/sda3 itd.):

sudo seeker „nazwa dysku”

Narzędzie jest łatwe w użyciu, uruchamia się bez dodatkowych opcji, testowanie dysku odbywa się w ciągu trzydziestu sekund, a aby uzyskać pełniejszy dostęp do dysku, lepiej uruchomić narzędzie z uprawnieniami administratora (źródło). Oprócz dysków twardych osoba ubiegająca się o możesz przeprowadzić test porównawczy istniejących pendrive'ów (np. aby użyć najszybszego urządzenia jako LiveUSB).

Oryginał: Przetestuj prędkość odczytu/zapisu dysków USB i SSD za pomocą polecenia dd w systemie Linux
Autor: Srebrny Księżyc
Data publikacji: 12.07.2014
Tłumaczenie: N. Romodanov
Data przelewu: październik 2014

Prędkość urządzenia

Szybkość urządzenia jest mierzona w jednostkach ilości danych, które może odczytać lub zapisać w jednostce czasu. Polecenie dd to proste narzędzie wiersza poleceń, którego można używać do odczytywania i zapisywania dowolnych bloków danych na dysku oraz mierzenia szybkości przesyłania danych.

W tym artykule użyjemy polecenia dd, aby sprawdzić prędkość odczytu i zapisu urządzeń USB i SSD.

Szybkość przesyłania danych zależy nie tylko od dysku, ale także od interfejsu, przez który jest podłączony. Na przykład port USB 2.0 ma maksymalny funkcjonalny limit prędkości wynoszący 35 MB/s, więc nawet jeśli podłączysz szybki dysk flash USB 3 do portu USB 2, prędkość zostanie ograniczona do niższej wartości.

To samo dotyczy urządzenia SSD. Urządzenie SSD podłącza się poprzez porty SATA, które mają różne wersje. Sata 2.0 ma maksymalny teoretyczny limit prędkości 3 Gb/s, czyli około 375 MB/s. Podczas gdy SATA 3.0 obsługuje dwa razy większą prędkość.

Metoda badania

Zamontuj dysk i przejdź do niego z okna terminala. Następnie użyj polecenia dd, aby najpierw zapisać plik, który składa się z bloków o stałym rozmiarze. Następnie odczytaj ten sam plik, używając tego samego rozmiaru bloku.

Ogólna składnia polecenia dd jest następująca

Dd if=ścieżka/do/pliku_wejściowego of=/ścieżka/do/pliku_wyjściowego bs=rozmiar_bloku count=liczba_bloków

Zapisując na dysk, po prostu czytamy z /dev/zero, które jest źródłem nieskończonej liczby bajtów. Czytając z dysku, czytamy wcześniej zapisany plik i wysyłamy go do /dev/null, który tak naprawdę nie istnieje. Podczas całego procesu polecenie dd monitoruje i raportuje szybkość, z jaką odbywa się transfer.

Urządzenie SSD

Urządzenie SSD, którego używamy, to dysk SSD „Samsung Evo 120 GB”. Jest to podstawowe urządzenie ssd związane z budżetem, a także mój pierwszy dysk SSD. Jest to również jeden z najwydajniejszych dysków SSD dostępnych na rynku.

W tym teście dysk SSD jest podłączony do portu sata 2.0.

Szybkość nagrywania

Nagrajmy najpierw na ssd

$ dd if=/dev/zero of=./largefile bs=1M count=1024 1024+0 rekordów w 1024+0 rekordów out 1073741824 bajtów (1,1 GB) skopiowanych, 4.82364 s, 223 MB/s

Rozmiar bloku jest w rzeczywistości dość duży. Możesz spróbować użyć mniejszego rozmiaru, takiego jak 64k lub nawet 4k.

Szybkość czytania

Teraz wręcz przeciwnie, przeczytaj ten sam plik. Ale najpierw wyczyść pamięć podręczną, aby upewnić się, że plik jest faktycznie odczytywany z dysku.

Aby wyczyścić pamięć podręczną, uruchom następujące polecenie

$ sudo sh -c "synchronizacja i echo 3 > /proc/sys/vm/drop_cache"

Teraz przeczytaj plik

$ dd if=./largefile of=/dev/null bs=4k 165118+0 rekordów w 165118+0 rekordów out 676323328 bajtów (676 MB) skopiowanych, 3.0114 s, 225 MB/s

urządzenie USB

W tym teście zmierzymy prędkość odczytu zwykłych dysków flash USB. Urządzenia podłącza się do standardowych portów USB 2. Pierwsze urządzenie to pamięć USB 4 GB, a drugie to stront 16 GB.

Najpierw podłącz urządzenie i zamontuj je tak, aby było czytelne. Następnie z wiersza poleceń przejdź do zamontowanego katalogu.

Urządzenie Sony 4 GB - nagrywanie

W tym teście polecenie dd służy do zapisania 10 000 fragmentów danych po 8 KB każdy w pojedynczym pliku na dysku.

# dd if=/dev/zero of=./largefile bs=8k count=10000 10000+0 records in 10000+0 records out 81920000 bajtów (82 MB) skopiowanych, 11,0626 s, 7,4 MB/s

Szybkość zapisu to około 7,5 MB/s. To niska liczba.

Urządzenie Sony 4 GB - czytanie

Ten sam plik jest odczytywany w celu przetestowania szybkości odczytu. Aby wyczyścić pamięć podręczną, uruchom następujące polecenie

$ sudo sh -c "synchronizacja i echo 3 > /proc/sys/vm/drop_cache"

Teraz przeczytaj plik za pomocą polecenia dd

# dd if=./largefile of=/dev/null bs=8k 8000+0 records in 8000+0 records out 65536000 bajtów (66 MB) skopiowanych, 2,65218 s, 24,7 MB/s

Prędkość odczytu wynosi około 25 MB/s, co jest mniej więcej standardem dla tanich pendrive'ów USB.

USB 2.0 ma teoretyczną maksymalną szybkość sygnalizacji 480 Mb/s lub 60 Mb/s. Jednak ze względu na różne ograniczenia maksymalna przepustowość jest ograniczona do około 280 Mb/s lub 35 Mb/s. Ponadto rzeczywista prędkość zależy od jakości dysku flash, a także od innych czynników.

A ponieważ opisane powyżej urządzenie USB zostało podłączone do portu USB 2.0 i osiągnięto prędkość odczytu 24,7 MB/s, co nie jest bardzo złe. Ale prędkość zapisu jest daleko w tyle.

Teraz zróbmy ten sam test z kijem strontu 16 gb. Strontium to kolejna marka, która robi bardzo tanie pendrive'y, ale te pendrive'y są niezawodne.

Prędkość zapisu dla urządzenia Strontium 16 gb

# dd if=/dev/zero of=./largefile bs=64k count=1000 1000+0 records in 1000+0 records out 65536000 bajtów (66 MB) skopiowanych, 8,3834 s, 7,8 MB/s

Prędkość odczytu dla urządzenia Strontium 16 gb

# sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # dd if=./largefile of=/dev/null bs=8k 8000+0 rekordów w 8000+0 rekordach wychodzących 65536000 bajtów (66 MB) skopiowane, 2,90366 s, 22,6 MB/s

Szybkość odczytu danych jest mniejsza niż w przypadku urządzenia Sony.