# Mierz wydajność NVMe bez wprowadzania się w błąd | SwissOctet Insights https://swissoctet.com/pl/insights/nvme-benchmark-methodology/ SwissOctet / Spostrzeżenia / Pamięć masowa i odzyskiwanie Pamięć masowa i odzyskiwanie Zaawansowane · 6 min czytania Zmierz wydajność NVMe bez wprowadzania się w błąd Zdefiniuj wzorzec wejścia/wyjścia, kontroluj efekty pamięci podręcznej i sprawdź rozkłady opóźnień, zanim wyciągniesz wniosek o aplikacji z testu dysku. Autor: SwissOctet Editorial Zapisz przewodnik Kopiuj link NA TEJ STRONIE 01 Zacznij od pytania o pamięć masową, a nie od wyniku 02 Opisz obciążenie w powtarzalnych kategoriach 03 Kontroluj buforowanie, nie udając, że nie ma znaczenia 04 Czytaj ogony opóźnień razem z przepustowością 05 Utrzymuj test autoryzowany i nieniszczący 06 Zamknij pętlę dowodami z aplikacji Twoja praktyczna lista kontrolna Źródła i dalsza lektura Powrót do biblioteki BEZPOŚREDNIA ODPOWIEDŹ Użyteczny test pamięci masowej dopasowuje rozmiar operacji, wzorzec dostępu, współbieżność i wymagania trwałości do aplikacji. Zapisz warunki testu i rozkład opóźnień, a następnie potwierdź wynik pomiarami aplikacji. 01 Zacznij od pytania o pamięć masową, a nie od wyniku Zdecyduj, co chcesz wiedzieć, zanim uruchomisz test porównawczy. Możesz badać powolne zatwierdzania bazy danych, przepustowość dystrybucji plików lub proces kompilacji tworzący wiele małych plików. Te obciążenia nie proszą dysku o to samo. Duża sekwencyjna kopia może wyglądać imponująco, mówiąc niewiele o opóźnieniu odczuwanym przez usługę wykonującą małe losowe odczyty. NVMe został zaprojektowany dla nośników nieulotnych i wydajnego równoległego wejścia/wyjścia, ale nazwa jego protokołu nie opisuje każdej części hostowanej ścieżki pamięci masowej. Wirtualizacja, system plików, rywalizacja o zasoby i aplikacja nadal mają znaczenie. Napisz hipotezę testu, na przykład czy opóźnienie pamięci masowej spowalnia konkretną operację, zamiast próbować uzyskać liczbę dowodzącą, że cały serwer jest szybki. 02 Opisz obciążenie w powtarzalnych kategoriach Zapisz rozmiar operacji, wzorzec sekwencyjny lub losowy, mieszankę odczytu do zapisu, liczbę zadań i głębokość kolejki. Uwzględnij rozmiar zbioru danych i czas trwania testu. Dokumentacja fio wyjaśnia te elementy sterujące obciążeniem i dostępne silniki wejścia/wyjścia. Zamierzona głębokość może nie zostać osiągnięta przez każdy silnik lub konfigurację, więc czytaj raportowane zachowanie, a także żądaną konfigurację. Zachowaj kopię opisu testu obok wyniku. Zanotuj system operacyjny, system plików, opcje montowania, aktywność usług i dostępną pojemność. Jeśli porównujesz konfiguracje, zmieniaj jeden istotny warunek naraz. Testu z innym wzorcem dostępu lub współbieżnością nie można uczciwie przedstawiać tak, jakby zmienił się tylko nośnik pamięci masowej. Wzorzec aplikacji Wymiar testu do opisania Wynik do zbadania Dostarczanie dużych plików Odczyty sekwencyjne i równocześni klienci Utrzymana przepustowość i użycie CPU Wyszukiwanie rekordu Małe losowe odczyty i reprezentatywna współbieżność Rozkład opóźnień i ukończone operacje Trwała transakcja Wymagania zapisu i synchronizacji Opóźnienie związane z zatwierdzaniem, a nie tylko szybkość zapisu buforowanego Kompilacja lub rozpakowywanie Mieszane operacje na małych plikach Czas trwania zadania od początku do końca i oczekiwania wejścia/wyjścia 03 Kontroluj buforowanie, nie udając, że nie ma znaczenia Zbiór danych mieszczący się w pamięci może po pierwszym przebiegu mierzyć głównie zachowanie pamięci podręcznej. Może to być użyteczne, jeśli aplikacja normalnie korzysta z tej samej pamięci podręcznej, ale nie należy tego oznaczać jako surowej wydajności urządzenia. Świadomie wybierz, czy test bada ciepłą ścieżkę aplikacji, chłodniejszy zbiór danych czy tryb wejścia/wyjścia mający ograniczyć efekt buforowania systemu operacyjnego. Obsługa bezpośredniego wejścia/wyjścia i wyrównanie zależą od platformy i silnika. Nie wyraża też automatycznie wymagań trwałości aplikacji ani nie eliminuje każdej pamięci podręcznej w stosie. Jasno określ wybrany tryb i unikaj porównywania testu buforowanego z niebuforowanym tak, jakby reprezentowały tę samą pracę. Oddziel rozgrzewkę od mierzonych przedziałów, jeśli pomaga to w interpretacji. 04 Czytaj ogony opóźnień razem z przepustowością Średnie opóźnienie może ukryć wolne operacje wpływające na rzeczywiste żądania. Badaj raportowane percentyle i liczbę próbek, na których się opierają. Wysoki percentyl opisuje granicę, poniżej której w tym teście znalazła się podana część zaobserwowanych operacji; nie jest trwałą gwarancją usługi. Krótkie lub niereprezentatywne przebiegi dają ograniczone dowody o ruchliwych okresach produkcyjnych. Wyższa głębokość kolejki może poprawić ukończoną przepustowość, zwiększając czas oczekiwania. Ten kompromis może pasować do przetwarzania wsadowego i szkodzić usłudze interaktywnej. Porównuj wyniki przy współbieżności zbliżonej do aplikacji i jednocześnie monitoruj CPU oraz presję wejścia/wyjścia. Zatrzymaj się, zanim test spowoduje niepotrzebne zakłócenia dla innego obciążenia współdzielącego środowisko. 05 Utrzymuj test autoryzowany i nieniszczący Użyj dedykowanego katalogu testowego lub przygotowanego jednorazowego wolumenu, z wystarczającą ilością wolnego miejsca i wyraźnym planem sprzątania. Nigdy nie kieruj testu zapisu na niezweryfikowane surowe urządzenie ani produkcyjny zbiór danych. Przed rozpoczęciem sprawdź cel i zachowanie zapisu narzędzia, a zacznij od ograniczonego przebiegu. Syntetyczne wejście/wyjście może zużywać pojemność i zakłócać usługi, nawet jeśli nie nadpisuje użytecznych plików. W przypadku oceny zbliżonej do produkcyjnej uzgodnij okno konserwacyjne i zachowaj monitorowanie aplikacji. Gdy to możliwe, używaj danych sfabrykowanych. Nie wnioskuj o niezawodności pamięci masowej z testu szybkości: kontrole integralności, kopie zapasowe i przywracanie to odrębne zadania. Urządzenie, które ukończyło test porównawczy, nadal potrzebuje strategii odzyskiwania na wypadek usunięcia, błędów oprogramowania lub utraty maszyny. 06 Zamknij pętlę dowodami z aplikacji Załóżmy, że usługa raportowania spędza dużo czasu, czekając na losowe odczyty. Zespół testuje reprezentatywny wzorzec odczytu, a następnie powtarza rzeczywisty raport na porównywalnych danych. Jeśli raport się poprawia, a jego pozostała praca pozostaje stabilna, wynik wspiera hipotezę o pamięci masowej. Jeśli nie, zbadaj projekt zapytania, pamięć lub inną zależność, zamiast powtarzać szersze testy syntetyczne. Pulse NVMe i wybrane dedykowane konfiguracje wymieniają pamięć masową NVMe w katalogu SwissOctet. Ich etykiety to specyfikacje, a nie publikowane benchmarki aplikacji. Użyj kontrolowanej metody, aby ocenić dostarczone środowisko, i zachowaj warunki wraz z wynikami. Decyzja staje się mocniejsza, gdy pomiar pamięci masowej i wynik widoczny dla użytkownika odpowiadają na to samo pytanie. ZAMIEŃ TO W DZIAŁANIE Twoja praktyczna lista kontrolna. ✓ Najpierw zdefiniuj pytanie aplikacji. ✓ Zapisz wzorzec, rozmiar bloku, współbieżność i czas trwania. ✓ Podaj założenia dotyczące pamięci podręcznej i trybu wejścia/wyjścia. ✓ Sprawdź percentyle opóźnień oraz przepustowość. ✓ Użyj zweryfikowanego jednorazowego celu i ograniczonego początkowego obciążenia. ✓ Potwierdź wynik testem aplikacji. Pobierz listę kontrolną CZĘSTE PYTANIA Szczegóły, które mają znaczenie. Czy sekwencyjne kopiowanie wystarczy do porównania pamięci masowej bazy danych? + Zwykle nie. Dostęp do bazy danych może obejmować małe losowe odczyty, zapisy i synchronizację. Odwzoruj odpowiedni wzorzec i zweryfikuj rzeczywistą aplikację. Czy bezpośrednie wejście/wyjście dowodzi trwałych zapisów? + Nie. Buforowanie i trwałość to odrębne zagadnienia. Dopasuj zachowanie synchronizacji wymagane przez aplikację. Czy mogę opublikować jeden test jako gwarantowaną prędkość planu? + Nie. Opublikuj jego warunki i zakres. Wynik zmierzony w jednym przebiegu nie jest gwarancją poziomu usługi ani przyszłej wydajności. GŁÓWNE ŹRÓDŁA Przejdź do źródła. Te źródła wspierają koncepcje techniczne w tym przewodniku. Przed zmianą systemu produkcyjnego zapoznaj się z aktualną dokumentacją. fio: dokumentacja elastycznego testera wejścia/wyjścia fio.readthedocs.io NVM Express: przegląd specyfikacji i FAQ nvmexpress.org Jądro Linux: Pressure Stall Information docs.kernel.org Wskazówki redakcyjne SwissOctet. Przykłady są ilustracyjne. Specyfikacje usług, dostępne opcje i warunki umowne należy zweryfikować osobno. POŁĄCZ WIEDZĘ Powiązana infrastruktura. Pulse NVMe Szwajcaria Metal Hyper Szwajcaria Metal EPYC Szwajcaria ZACHOWAJ WĄTEK Twoje następne notatki z terenu. Poznaj wszystkie przewodniki NOTATKA Z TERENU / 01 + Pamięć masowa i odzyskiwanie Podstawy Kiedy NVMe robi różnicę w Twojej aplikacji Rozróżnij wydajność, opóźnienie i przepustowość, aby szybsza etykieta storage odpowiadała realnemu problemowi aplikacji. 4 min czytania Przeczytaj przewodnik NOTATKA Z TERENU / 02 + Pamięć masowa i odzyskiwanie Praktyczne Migawki i kopie zapasowe: wybierz awarię, którą musisz przetrwać Porównaj punkty odtwarzania, granice awarii i spójność aplikacji, zamiast zakładać, że migawka i niezależna kopia zapasowa zapewniają taką samą ochronę. 4 min czytania Przeczytaj przewodnik NOTATKA Z TERENU / 03 + Pamięć masowa i odzyskiwanie Podstawy Pamięć obiektowa, plikowa lub blokowa: wybierz interfejs potrzebny aplikacji Rozróżnij interfejsy pamięci masowej, semantykę dostępu i obowiązki operacyjne, zanim przekształcisz wymaganie pojemności w architekturę aplikacji. 4 min czytania Przeczytaj przewodnik