Jak sprawdzić wydajność dysku twardego (albo przez terminal, albo GUI). Szybkość zapisu. Szybkość odczytu Rozmiar i szybkość pamięci podręcznej. Losowa prędkość.
hard-drive
performance
Luis Alvarado
źródło
źródło
Odpowiedzi:
Metoda terminalowa
hdparm
jest dobrym miejscem do rozpoczęcia.sudo hdparm -v /dev/sda
poda również informacje.dd
poda informacje o prędkości zapisu.Jeśli dysk nie ma systemu plików (i tylko wtedy ), użyj
of=/dev/sda
.W przeciwnym razie zamontuj go na / tmp i napisz, a następnie usuń testowy plik wyjściowy.
Metoda graficzna
gnome-disks
Jak przeprowadzić testy porównawcze dysku I / O
Artykuł
Czy chcesz czegoś więcej?
źródło
/dev/urandom
a także/dev/zero
dane wejściowe dodd
testowania dysku SSD, ponieważ kompresja danych może mieć ogromny wpływ na szybkość zapisu./tmp
plików często używa ramdysku. Więc pisanie do/tmp
wydaje się testować pamięć, a nie podsystem dyskowy.Suominen ma rację, powinniśmy użyć pewnego rodzaju synchronizacji; ale istnieje prostsza metoda, conv = fdatasync wykona zadanie:
źródło
Nie zalecałbym używania,
/dev/urandom
ponieważ jest oparty na oprogramowaniu i powolny jak świnia. Lepiej wziąć część losowych danych na ramdysku. Na dysku twardym testowanie losowe nie ma znaczenia, ponieważ każdy bajt jest zapisywany tak, jak jest (również na ssd z dd). Ale jeśli przetestujemy deduplikowaną pulę ZFS przy użyciu czystego zera lub danych losowych, istnieje ogromna różnica wydajności.Innym punktem widzenia musi być uwzględnienie czasu synchronizacji; wszystkie nowoczesne systemy plików używają buforowania podczas operacji na plikach.
Aby naprawdę zmierzyć szybkość dysku, a nie pamięć, musimy zsynchronizować system plików, aby pozbyć się efektu buforowania. Można to łatwo zrobić:
tą metodą otrzymujesz dane wyjściowe:
więc dane na dysku wynoszą tylko 104857600 / 0,441 = 237772335 B / s -> 237 MB / s
To ponad 100 MB / s mniej niż w przypadku buforowania.
Szczęśliwego testu porównawczego,
źródło
Jeśli chcesz monitorować prędkość odczytu i zapisu dysku w czasie rzeczywistym, możesz użyć narzędzia iotop .
Jest to przydatne, aby uzyskać dokładne informacje o wydajności dysku dla określonej aplikacji lub zadania. Dane wyjściowe pokażą Ci szybkość odczytu / zapisu na proces oraz całkowitą prędkość odczytu / zapisu dla serwera, bardzo podobną do
top
.Aby zainstalować iotop:
Aby uruchomić:
źródło
Jeśli chcesz dokładności, powinieneś użyć
fio
. Wymaga przeczytania instrukcji (man fio
), ale da dokładne wyniki. Pamiętaj, że dla dowolnej dokładności musisz dokładnie określić, co chcesz zmierzyć. Kilka przykładów:Sekwencyjna prędkość odczytu z dużymi blokami (powinna być zbliżona do liczby podanej w specyfikacjach napędu):
Sekwencyjna prędkość zapisu z dużymi blokami (powinna być zbliżona do liczby podanej w specyfikacjach napędu):
Losowy odczyt 4K QD1 (jest to liczba, która naprawdę ma znaczenie dla rzeczywistej wydajności, chyba że wiesz na pewno):
Mieszane losowe odczytywanie i zapisywanie QD1 4K z synchronizacją (jest to najgorszy numer, jakiego można się spodziewać po dysku, zwykle mniej niż 1% liczb wymienionych w specyfikacji):
Zwiększ
--size
argument, aby zwiększyć rozmiar pliku. Korzystanie z większych plików może zmniejszyć liczbę otrzymywanych danych w zależności od technologii napędu i oprogramowania układowego. Małe pliki dadzą „zbyt dobre” wyniki dla nośników rotacyjnych, ponieważ głowica odczytu nie musi się tak bardzo ruszać. Jeśli Twoje urządzenie jest prawie puste, użycie pliku wystarczająco dużego, aby prawie zapełnić dysk, zapewni najgorsze zachowanie przy każdym teście. W przypadku dysku SSD rozmiar pliku nie ma tak dużego znaczenia.Należy jednak pamiętać, że w przypadku niektórych nośników pamięci rozmiar pliku nie jest tak ważny, jak całkowita liczba bajtów zapisanych w krótkim okresie czasu. Na przykład niektóre dyski SSD mogą mieć znacznie wyższą wydajność z wstępnie usuniętymi blokami lub mogą mieć mały obszar pamięci flash SLC, który jest używany jako pamięć podręczna zapisu, a wydajność zmienia się po zapełnieniu pamięci podręcznej SLC. Jako kolejny przykład dyski twarde SMR Seagate mają około 20 GB pamięci podręcznej PMR, która ma dość wysoką wydajność, ale gdy się zapełni, pisanie bezpośrednio do obszaru SMR może obniżyć wydajność do 10% w stosunku do oryginału. A jedynym sposobem na zobaczenie tego spadku wydajności jest jak najszybsze zapisanie ponad 20 GB. Oczywiście wszystko to zależy od obciążenia: jeśli dostęp do zapisu jest obciążony dużymi opóźnieniami, które pozwalają urządzeniu wyczyścić pamięć podręczną, krótsze sekwencje testowe lepiej odzwierciedlą Twoją rzeczywistą wydajność. Jeśli musisz zrobić dużo IO, musisz zwiększyć oba
--io_size
i--runtime
parametry. Należy pamiętać, że niektóre media (np. Większość urządzeń flash) ulegną dodatkowemu zużyciu podczas takich testów. Moim zdaniem, jeśli jakieś urządzenie jest wystarczająco słabe, aby nie poradzić sobie z tego rodzaju testowaniem, w żadnym wypadku nie powinno być używane do przechowywania cennych danych.Ponadto niektóre wysokiej jakości urządzenia SSD mogą mieć jeszcze bardziej inteligentne algorytmy wyrównywania zużycia, w których wewnętrzna pamięć podręczna SLC ma wystarczającą liczbę inteligentnych danych, aby zastąpić dane, które są ponownie zapisywane podczas testu, jeśli trafią w tę samą przestrzeń adresową (to znaczy plik testowy jest mniejsza niż całkowita pamięć podręczna SLC). W przypadku takich urządzeń rozmiar pliku zaczyna znów mieć znaczenie. Jeśli potrzebujesz rzeczywistego obciążenia, najlepiej przetestować z rozmiarami plików, które zobaczysz w rzeczywistości. W przeciwnym razie Twoje liczby mogą wyglądać zbyt dobrze.
Uwaga:
fio
przy pierwszym uruchomieniu utworzy wymagany plik tymczasowy. Zostaną wypełnione losowymi danymi, aby uniknąć uzyskiwania zbyt dobrych liczb z urządzeń, które oszukują, kompresując dane przed zapisaniem ich w pamięci trwałej. Plik tymczasowy zostanie wywołanyfio-tempfile.dat
w powyższych przykładach i zapisany w bieżącym katalogu roboczym. Dlatego najpierw należy przejść do katalogu zamontowanego na urządzeniu, które chcesz przetestować.Jeśli masz dobry dysk SSD i chcesz zobaczyć jeszcze wyższe liczby, zwiększ
--numjobs
powyżej. To określa współbieżność odczytów i zapisów. Wszystkie powyższe przykłady zostałynumjobs
ustawione na,1
więc test dotyczy odczytu i zapisu procesu jednowątkowego (być może z zestawem kolejek ziodepth
). Dyski SSD klasy wyższej (np. Intel Optane) powinny uzyskiwać wysokie liczby, nawet beznumjobs
znacznego wzrostu (np.4
Powinny wystarczyć, aby uzyskać najwyższe liczby specyfikacji), ale niektóre dyski SSD „Enterprise” wymagają32
-128
aby uzyskać numery specyfikacji, ponieważ ich wewnętrzne opóźnienie urządzenia są wyższe, ale ogólna przepustowość jest szalona.źródło
max_sectors_kb
. Zmieniłem powyższe przykładowe polecenia, aby użyć rozmiaru bloku 1 MB, ponieważ wydaje się, że działa to na sprzęcie ze świata rzeczywistego. Testowałem też, żefsync
nie ma to znaczenia przy czytaniu.iodepth
się1
na swobodnym dostępie dokładnie ponieważ programy prawdziwym świecie często uruchamiać algorytmy / logiki, który nie działa z głębi każdy wyższy niż 1. W rezultacie, jeśli taka głębokość jest „zbyt niskie” urządzenie I / O jest źle. Prawdą jest, że niektóre urządzenia SSD skorzystają z głębokości większej niż 32. Czy możesz jednak wskazać na obciążenie pracą w świecie rzeczywistym, które wymaga dostępu do odczytu i jest w stanie utrzymać jododth większy niż 32? TL; DR: jeśli chcesz odtworzyć niesamowicie wysoką liczbę odczytów testu porównawczego z urządzeniem o dużym opóźnieniu, użyj,iodepth=256 --numjobs=4
ale nigdy nie oczekuj, że zobaczysz takie liczby w rzeczywistości.bonnie ++ to najlepsze narzędzie testowe, jakie znam dla systemu Linux.
(Obecnie przygotowuję plik Linux na żywo w pracy z bonnie ++ na nim, aby przetestować na nim naszą maszynę z systemem Windows!)
Zajmuje się buforowaniem, synchronizacją, losowymi danymi, losową lokalizacją na dysku, małymi rozmiarami aktualizacji, dużymi aktualizacjami, odczytami, zapisami itp. Porównywanie klucza usb, dysku twardego (obrotowego), dysku SSD i napędu RAM system plików może być bardzo pouczający dla początkującego.
Nie mam pojęcia, czy jest zawarty w Ubuntu, ale możesz go łatwo skompilować ze źródła.
http://www.coker.com.au/bonnie++/
źródło
Szybkość pisania
Rozmiar bloku jest w rzeczywistości dość duży. Możesz spróbować z mniejszymi rozmiarami, takimi jak 64k, a nawet 4k.
Czytaj prędkość
Uruchom następujące polecenie, aby wyczyścić pamięć podręczną
Teraz przeczytaj plik, który został utworzony w teście zapisu:
źródło
kilka wskazówek, jak korzystać z Bonnie ++
Trochę więcej na: SIMPLE BONNIE ++ PRZYKŁAD .
źródło
f3 - Zwalczanie oszustw typu Flash
Sprawdzaj integralność, wykrywaj fałszywe dyski flash i testuj wydajność - wszystkie trzy za jednym razem.
Więcej na temat tej odpowiedzi .
źródło