Udostępnij za pośrednictwem


Zwiększanie wydajności udziałów plików SMB w platformie Azure

W tym artykule wyjaśniono, jak zwiększyć wydajność udziałów plików SMB (SSD w warstwie Premium), w tym przy użyciu funkcji SMB Multichannel i buforowania metadanych.

Ma zastosowanie do

Model zarządzania Model rozliczania Poziom mediów Redundancja Małe i Średnie Przedsiębiorstwa (SMB) System plików sieciowych (NFS)
Microsoft.Storage Przygotowana wersja 2 HDD (standardowa) Lokalne (LRS) Tak Nie
Microsoft.Storage Przygotowana wersja 2 HDD (standardowa) Strefa (ZRS) Tak Nie
Microsoft.Storage Przygotowana wersja 2 HDD (standardowa) Geo (GRS) Tak Nie
Microsoft.Storage Przygotowana wersja 2 HDD (standardowa) Strefa geograficzna (GZRS) Tak Nie
Microsoft.Storage Zaprovisionowana wersja 1 SSD klasy premium Lokalne (LRS) Tak Nie
Microsoft.Storage Zaprovisionowana wersja 1 SSD klasy premium Strefa (ZRS) Tak Nie
Microsoft.Storage Płać według zużycia HDD (standardowa) Lokalne (LRS) Tak Nie
Microsoft.Storage Płać według zużycia HDD (standardowa) Strefa (ZRS) Tak Nie
Microsoft.Storage Płać według zużycia HDD (standardowa) Geo (GRS) Tak Nie
Microsoft.Storage Płać według zużycia HDD (standardowa) Strefa geograficzna (GZRS) Tak Nie

Optymalizacja wydajności

Poniższe porady mogą pomóc w optymalizacji wydajności:

  • Upewnij się, że konto storage i klient znajdują się w tym samym regionie Azure, aby zmniejszyć opóźnienie sieci.
  • Używaj aplikacji wielowątowych i rozkładaj obciążenie na wiele plików.
  • Korzyści wydajnościowe protokołu SMB Multichannel zwiększają się wraz ze wzrostem liczby plików, które rozkładają obciążenie.
  • Wydajność udziału SSD jest ograniczona przez aprowizowany rozmiar udziału, w tym liczbę operacji we/wy na sekundę (IOPS), przepustowość oraz limity pojedynczego pliku. Aby uzyskać szczegółowe informacje, zobacz zrozumienie modelu aprowizacji w wersji 1.
  • Maksymalna wydajność pojedynczego klienta maszyny wirtualnej jest nadal powiązana z limitami maszyn wirtualnych. Na przykład Standard_D32s_v3 może obsługiwać maksymalną przepustowość wynoszącą około 1,86 GiB/s, ruch wychodzący z maszyny wirtualnej (zapisy do magazynu) jest mierzony. Przyjmowanie (odczyty z magazynu) nie odbywa się. Wydajność udziału plików zależy od limitów sieci maszyny, procesorów CPU, wewnętrznej pamięci masowej, dostępnej przepustowości sieci, rozmiaru operacji we/wy, równoległości oraz innych czynników.
  • Początkowy test jest zwykle rozgrzewką. Odrzuć wyniki i powtórz test.
  • Jeśli wydajność jest ograniczona przez jednego klienta, a obciążenie nadal jest poniżej aprowizowanych limitów udziału, można osiągnąć większą wydajność, rozkładając obciążenie na wielu klientów.

Relacja między IOPS, przepustowością i rozmiarami we/wy

Przepływność = rozmiar IO * IOPS

Wyższe rozmiary I/O zwiększają przepustowość i będą miały wyższe opóźnienia, co spowoduje zmniejszenie liczby IOPS netto. Mniejsze rozmiary operacji we/wy powodują zwiększenie liczby operacji we/wy na sekundę, ale spowodują obniżenie przepustowości i wyższe opóźnienia. Aby dowiedzieć się więcej, zobacz Omówienie wydajności usługi Azure Files.

SMB Multichannel

Funkcja SMB Multichannel umożliwia klientowi SMB nawiązywanie wielu połączeń sieciowych do zasobu udostępnionego SMB. Usługa Azure Files obsługuje SMB Multichannel w udostępnianych zasobach SSD dla klientów systemu Windows. Po stronie usługi funkcja SMB Multichannel jest teraz domyślnie włączona dla wszystkich nowo utworzonych kont magazynu we wszystkich regionach świadczenia usługi Azure. Nie ma innych kosztów włączenia funkcji SMB Multichannel.

Świadczenia

Funkcja SMB Multichannel umożliwia klientom korzystanie z wielu połączeń sieciowych, które zapewniają zwiększoną wydajność, jednocześnie obniżając koszt posiadania. Zwiększona wydajność jest osiągana dzięki agregacji przepustowości za pomocą wielu interfejsów sieciowych (NIC) i wykorzystaniu obsługi skalowania po stronie odbierającej (RSS) dla interfejsów sieciowych w celu rozłożenia obciążenia wejścia/wyjścia (I/O) na wiele procesorów.

  • Zwiększona przepływność: Wiele połączeń umożliwia przesyłanie danych równolegle przez wiele ścieżek, co znacznie przynosi korzyści dla obciążeń korzystających z większych rozmiarów plików o większych rozmiarach operacji we/wy i wymagają wysokiej przepływności z jednej maszyny wirtualnej lub mniejszego zestawu maszyn wirtualnych. Niektóre z tych obciążeń obejmują multimedia i rozrywkę na potrzeby tworzenia zawartości lub transkodowania, genomiki i analizy ryzyka usług finansowych.
  • Większa liczba operacji we/wy na sekundę: Funkcja RSS karty sieciowej umożliwia efektywne rozłożenie obciążenia między wieloma CPU z wieloma połączeniami. Pomaga to osiągnąć większą skalę IOPS i efektywne wykorzystanie CPU maszyn wirtualnych. Jest to przydatne w przypadku obciążeń, które mają małe rozmiary we/wy, takie jak aplikacje bazy danych.
  • Odporność na uszkodzenia sieci: wiele połączeń zmniejsza ryzyko zakłóceń, ponieważ klienci nie korzystają już z pojedynczego połączenia.
  • Automatyczna konfiguracja: gdy funkcja SMB Multichannel jest włączona na klientach i kontach magazynu, umożliwia dynamiczne odnajdywanie istniejących połączeń i może w razie potrzeby tworzyć dodatkowe ścieżki połączeń.
  • Optymalizacja kosztów: obciążenia mogą osiągnąć wyższą skalę za pomocą pojedynczej maszyny wirtualnej lub małego zestawu maszyn wirtualnych, jednocześnie łącząc się z udziałami plików SSD. Może to zmniejszyć całkowity koszt posiadania, zmniejszając liczbę maszyn wirtualnych niezbędnych do uruchamiania obciążenia i zarządzania nim.

Aby dowiedzieć się więcej o funkcji SMB Multichannel, zapoznaj się z dokumentacją systemu Windows.

Ta funkcja zapewnia większe korzyści z wydajności dla aplikacji wielowątowych, ale zwykle nie pomaga w aplikacjach jednowątkowych. Aby uzyskać więcej informacji, zobacz sekcję Porównanie wydajności.

Ograniczenia

Funkcja SMB Multichannel dla zasobów plików platformy Azure ma obecnie następujące ograniczenia:

  • Dostępne tylko dla zasobów udostępnionych SSD. Niedostępne dla udziałów plików Azure HDD.
  • Obsługiwane tylko na klientach korzystających z protokołu SMB 3.1.1. Upewnij się, że systemy operacyjne klienta SMB są poprawiane do zalecanych poziomów.
  • Maksymalna liczba kanałów to cztery, aby uzyskać szczegółowe informacje, zobacz tutaj.

Konfigurowanie

Funkcja SMB Multichannel działa tylko wtedy, gdy funkcja jest włączona zarówno po stronie klienta (klienta), jak i po stronie usługi (konto usługi Azure Storage).

Na klientach z systemem Windows funkcja SMB Multichannel jest domyślnie włączona. Konfigurację można zweryfikować, uruchamiając następujące polecenie programu PowerShell:

Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel

Jeśli funkcja SMB Multichannel nie jest włączona na koncie usługi Azure Storage, zobacz Stan funkcji SMB Multichannel.

Wyłączanie funkcji SMB Multichannel

W większości scenariuszy, szczególnie podczas obciążeń wielowątkowych, klienci powinni zobaczyć lepszą wydajność dzięki funkcji SMB Multichannel. Jednak w przypadku niektórych konkretnych scenariuszy, takich jak obciążenia jednowątkowe lub w celach testowych, warto wyłączyć funkcję SMB Multichannel. Aby uzyskać więcej informacji, zobacz Porównanie wydajności i Stan multikanałowego SMB.

Sprawdź, czy funkcja SMB Multichannel jest poprawnie skonfigurowana

  1. Utwórz nowy udział plików SSD lub użyj istniejącego udziału plików SSD.
  2. Upewnij się, że klient obsługuje funkcję SMB Multichannel (co najmniej jedna karta sieciowa ma włączone skalowanie po stronie odbioru). Aby uzyskać więcej informacji, zapoznaj się z dokumentacją systemu Windows.
  3. Zamontuj zasób plików na kliencie.
  4. Generuj obciążenie przy użyciu aplikacji. Narzędzie do kopiowania, takie jak robocopy /MT, lub dowolne narzędzie wydajności, takie jak Diskspd do odczytu/zapisu plików, może generować obciążenie.
  5. Otwórz program PowerShell jako administrator i użyj następującego polecenia: Get-SmbMultichannelConnection |fl
  6. Znajdź właściwości MaxChannels i CurrentChannels.

Porównanie wydajności

Istnieją dwie kategorie wzorców obciążeń odczytu/zapisu: jednowątkowy i wielowątkowy. Większość obciążeń używa wielu plików, ale mogą istnieć konkretne przypadki użycia, w których obciążenie działa z jednym plikiem w udziale. W tej sekcji omówiono różne przypadki użycia i wpływ na wydajność dla każdego z nich. Ogólnie rzecz biorąc, większość obciążeń jest wielowątkowa i dystrybuuje obciążenie w wielu plikach, dlatego powinny obserwować znaczne ulepszenia wydajności dzięki funkcji SMB Multichannel.

  • Wiele wątków/wiele plików: w zależności od wzorca obciążenia powinno być widoczne znaczna poprawa wydajności operacji we/wy odczytu i zapisu w wielu kanałach. Wzrost wydajności różni się w zakresie od 2x do 4x w zakresie liczby operacji we/wy na sekundę, przepływności i opóźnień. W tej kategorii należy włączyć funkcję SMB Multichannel w celu uzyskania najlepszej wydajności.
  • Wielowątkowy/pojedynczy plik: W większości przypadków użycia w tej kategorii zadania zyskują na włączeniu SMB Multichannel, zwłaszcza jeśli praca ma średni rozmiar operacji wejścia/wyjścia (I/O) około 16 tys. Kilka przykładowych scenariuszy, które korzystają z funkcji SMB Multichannel, to tworzenie kopii zapasowych lub odzyskiwanie pojedynczego dużego pliku. Wyjątkiem, w którym możesz chcieć wyłączyć funkcję SMB Multichannel, jest sytuacja, gdy obciążenie dotyczy dużej liczby małych operacji we/wy. W takim przypadku może wystąpić niewielka utrata wydajności w wysokości ok. 10%. W zależności od przypadku użycia rozważ rozłożenie obciążenia na wiele plików lub wyłączenie funkcji. Aby uzyskać szczegółowe informacje, zobacz sekcję Konfiguracja .
  • Jednowątkowy/wiele plików lub pojedynczy plik: W przypadku większości obciążeń jednowątkowych zyski wydajności są minimalne z powodu braku możliwości równoległej pracy. Zwykle występuje niewielkie obniżenie wydajności ok. 10%, jeśli włączono funkcję SMB Multichannel. W takim przypadku najlepszym rozwiązaniem jest wyłączenie funkcji SMB Multichannel z jednym wyjątkiem. Jeśli obciążenie jednowątkowe może dystrybuować obciążenie między wieloma plikami i średnio używa większego rozmiaru operacji we/wy (> ok. 16 tys.), to może zapewnić niewielkie korzyści wydajności dzięki funkcji SMB Multichannel.

Konfiguracja testu wydajnościowego

W przypadku wykresów w tym artykule użyto następującej konfiguracji: pojedyncza maszyna wirtualna Standard D32s v3 z pojedynczą kartą sieciową RSS z czterema kanałami. Obciążenie zostało wygenerowane przy użyciu diskspd.exe, w trybie wielowątkowym z głębokością operacji we/wy wynoszącą 10 oraz losowymi operacjami we/wy o różnych rozmiarach.

Przetwarzanie wielowątkowe i wielu plików z SMB Multichannel

Obciążenie zostało wygenerowane dla 10 plików o różnych rozmiarach operacji wejścia/wyjścia. Wyniki testu skalowania w górę wykazały znaczne ulepszenia zarówno liczby operacji we/wy na sekundę, jak i wyników testu przepływności z włączoną funkcją SMB Multichannel. Na poniższych diagramach przedstawiono wyniki:

Diagram wydajności.

Diagram wydajności przepustowości.

  • Na pojedynczej karcie sieciowej zaobserwowano wzrost wydajności przy operacjach odczytu o 2x-3x, a przy operacjach zapisu o 3x-4x, zarówno pod względem liczby operacji we/wy na sekundę (IOPS), jak i przepływności.
  • SMB Multichannel umożliwiało osiągnięcie limitów IOPS i przepustowości maszyn wirtualnych nawet przy użyciu jednej karty sieciowej i limicie czterech kanałów.
  • Ponieważ ruch wychodzący (lub odczyt do magazynu) nie jest mierzony, przepływność odczytu mogła przekroczyć opublikowany limit maszyny wirtualnej w wysokości około 1,86 GiB/s. Test osiągnął >2,7 GiB /s. Ruch przychodzący (lub zapis w magazynie) nadal podlega limitom maszyn wirtualnych.
  • Rozłożenie obciążenia na wiele plików jest dozwolone w celu uzyskania znaczących ulepszeń.

Przykładowe polecenie używane w tym testowaniu to:

diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat .

Obciążenia wielowątkowe i pojedynczy plik z SMB Multichannel

Obciążenie zostało wygenerowane na pojedynczym pliku o rozmiarze 128 GiB. Po włączeniu funkcji SMB Multichannel, test skalowania w górę z wielowątkowymi/pojedynczymi wątkami pokazał ulepszenia w większości przypadków. Na poniższych diagramach przedstawiono wyniki:

Diagram wydajności IOPS.

Diagram wydajności przepływności pojedynczego pliku.

  • W przypadku pojedynczej karty sieciowej o większym średnim rozmiarze operacji I/O (> ok. 16 tys.) zaobserwowano znaczne ulepszenia zarówno w operacjach odczytu, jak i zapisu.
  • W przypadku mniejszych rozmiarów we/wy wydajność była nieznacznie zmniejszona o około 10% przy włączonej funkcji SMB Multichannel. Można temu zapobiec przez rozłożenie obciążenia na wiele plików lub wyłączenie funkcji.
  • Wydajność jest nadal powiązana z limitami pojedynczego pliku.

Buforowanie metadanych dla zasobów plików SSD

Buforowanie metadanych to ulepszenie dla udziałów plików Azure SSD, którego celem jest poprawa następujących elementów:

  • Zmniejszanie opóźnienia metadanych
  • Podniesione limity skalowania metadanych
  • Popraw stabilność opóźnienia, dostępną liczbę operacji we/wy na sekundę i zwiększ przepustowość sieci.

Ta funkcja ulepsza następujące interfejsy API metadanych i może być używana zarówno z klientów systemu Windows, jak i Linux:

  • Utwórz
  • Otwórz
  • Zamknij
  • Usuń

Obecnie ta funkcja jest dostępna tylko dla udziałów plików SSD. Korzystanie z tej funkcji nie wiąże się z dodatkowymi kosztami. Możesz również zarejestrować się, aby zwiększyć limity obsługi plików dla udostępnień plików SSD (przegląd).

Rejestrowanie w celu korzystania z funkcji buforowania metadanych

Aby rozpocząć, zarejestruj się w celu uzyskania funkcji przy użyciu witryny Azure Portal lub programu Azure PowerShell.

  1. Zaloguj się w witrynie Azure Portal.
  2. Wyszukaj i wybierz Funkcje zapoznawcze.
  3. Wybierz filtr Typ i wybierz pozycję Microsoft.Storage.
  4. Wybierz pozycję Azure Premium Files Metadata Cache , a następnie wybierz pozycję Zarejestruj.

Ważne

  • Mimo że są wymienione w obszarze Funkcje wersji zapoznawczej, będziemy honorować umowy SLA GA i wkrótce ustawimy to jako domyślne dla wszystkich kont, usuwając potrzebę rejestracji.
  • Proces dołączania kont może potrwać od 2 do 6 godzin po zakończeniu rejestracji.

Ulepszenia wydajności dzięki buforowaniu metadanych

Większość obciążeń lub wzorców użycia zawierających metadane może korzystać z buforowania metadanych. Aby określić, czy obciążenie zawiera metadane, możesz użyć usługi Azure Monitor , aby podzielić transakcje według wymiaru interfejsu API.

Typowe obciążenia i wzorce użycia z dużym obciążeniem metadanych obejmują:

  • Usługi sieci Web/app
  • Zadania metodyki DevOps
  • Indeksowanie/zadania wsadowe
  • Wirtualne stacje robocze z katalogami domowymi lub innymi obciążeniami, które głównie współdziałają z wieloma małymi plikami, katalogami lub uchwytami.

Na poniższych diagramach przedstawiono potencjalne wyniki.

Zmniejszanie opóźnienia metadanych

Buforując pliki i ścieżki katalogów dla przyszłych wyszukiwań, buforowanie metadanych może zmniejszyć opóźnienia w często używanych plikach i katalogach o 30% lub więcej w przypadku obciążeń z dużym obciążeniem metadanych na dużą skalę.

Wykres przedstawiający opóźnienie w milisekundach z buforowaniem metadanych i bez buforowania metadanych.

Zwiększenie dostępnych IOPS

Buforowanie metadanych może zwiększyć dostępną liczbę operacji we/wy na sekundę o ponad 60% w przypadku obciążeń na dużą skalę, które intensywnie wykorzystują metadane.

Wykres przedstawiający dostępne IOPS z buforowaniem metadanych i bez niego.

Zwiększanie przepływności sieci

Buforowanie metadanych może zwiększyć przepływność sieci o ponad 60% w przypadku obciążeń z dużym obciążeniem metadanych na dużą skalę.

Wykres przedstawiający przepływność sieci z buforowaniem metadanych i bez ich użycia.

Rejestrowanie w celu zwiększenia limitów dojść do plików (wersja zapoznawcza)

Aby zwiększyć maksymalną liczbę współbieżnych dojść na plik i katalog dla udziałów plików SMB SSD z 2000 do 10 000, zarejestruj się w celu uzyskania funkcji w wersji zapoznawczej przy użyciu witryny Azure Portal lub programu Azure PowerShell. Jeśli masz pytania, wyślij wiadomość e-mail na adres azfilespreview@microsoft.com.

  1. Zaloguj się w witrynie Azure Portal.
  2. Wyszukaj i wybierz Funkcje zapoznawcze.
  3. Wybierz filtr Typ i wybierz pozycję Microsoft.Storage.
  4. Wybierz Zwiększona liczba maksymalna otwartych uchwytów Azure Premium Files, a następnie wybierz Zarejestruj.

Następne kroki