PRYWATNA INFRASTRUKTURA OFFSHORE
Pamięć masowa i odzyskiwanieZaawansowane · 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
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 aplikacjiWymiar testu do opisaniaWynik do zbadania
Dostarczanie dużych plikówOdczyty sekwencyjne i równocześni klienciUtrzymana przepustowość i użycie CPU
Wyszukiwanie rekorduMałe losowe odczyty i reprezentatywna współbieżnośćRozkład opóźnień i ukończone operacje
Trwała transakcjaWymagania zapisu i synchronizacjiOpóźnienie związane z zatwierdzaniem, a nie tylko szybkość zapisu buforowanego
Kompilacja lub rozpakowywanieMieszane operacje na małych plikachCzas 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.
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ą.

  1. fio: dokumentacja elastycznego testera wejścia/wyjścia fio.readthedocs.io
  2. NVM Express: przegląd specyfikacji i FAQ nvmexpress.org
  3. 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.

ZACHOWAJ WĄTEK

Twoje następne notatki z terenu.

Poznaj wszystkie przewodniki