Udostępnij za pośrednictwem


Zwiększanie wydajności udziałów plików platformy Azure za pomocą protokołu SMB

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

Dotyczy

Typ udziału plików SMB NFS
Udziały plików w warstwie Standardowa (GPv2), LRS/ZRS Nie Nie.
Udziały plików w warstwie Standardowa (GPv2), GRS/GZRS Nie Nie.
Udziały plików w warstwie Premium (FileStorage), LRS/ZRS Tak Nie.

Optymalizacja wydajności

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

  • Upewnij się, że konto magazynu i klient znajdują się w tym samym regionie świadczenia usługi Azure, aby zmniejszyć opóźnienie sieci.
  • Używaj aplikacji wielowątowych i rozkładaj obciążenie na wiele plików.
  • Korzyści z wydajności protokołu SMB Multichannel zwiększają się wraz z liczbą plików dystrybucji obciążenia.
  • Wydajność udziału w warstwie Premium jest powiązana przez aprowizowany rozmiar udziału (liczba operacji we/wy na sekundę/ruch wychodzący/ruch przychodzący) i limity pojedynczych plików. Aby uzyskać szczegółowe informacje, zobacz Opis aprowizacji udziałów plików w warstwie Premium.
  • 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ą 16 000 MB/s (lub 2 GB/s), ruch wychodzący z maszyny wirtualnej (zapisy do magazynu) jest mierzony, ruch przychodzący (odczyty z magazynu) nie jest. Wydajność udziału plików podlega limitom sieci maszyny, procesorom CPU, wewnętrznej dostępnej przepustowości sieci, rozmiarom operacji we/wy, równoległości, a także innym czynnikom.
  • 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 operacjami we/wy na sekundę, przepływnością i rozmiarami we/wy

Przepływność = rozmiar operacji we/wy * liczba operacji we/wy na sekundę

Wyższe rozmiary operacji we/wy napędzają większą przepływność i będą miały większe opóźnienia, co spowoduje zmniejszenie liczby operacji we/wy na sekundę netto. Mniejsze rozmiary operacji we/wy będą zwiększać liczbę operacji we/wy na sekundę, ale spowodują obniżenie przepływności i opóźnień netto. Aby dowiedzieć się więcej, zobacz Omówienie wydajności usługi Azure Files.

SMB Multichannel

Protokół SMB Multichannel umożliwia klientowi protokołu SMB 3.x ustanawianie wielu połączeń sieciowych z udziałem plików SMB. Usługa Azure Files obsługuje protokół SMB Multichannel w udziałach plików w warstwie Premium (udziały plików w rodzaju konta magazynu FileStorage) dla klientów systemu Windows. Po stronie usługi funkcja SMB Multichannel jest domyślnie wyłączona w usłudze Azure Files, ale nie ma dodatkowych kosztów ich włączenia.

Ś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 wielu kart sieciowych i wykorzystaniu obsługi skalowania po stronie odbierającej (RSS) dla kart sieciowych w celu rozłożenia obciążenia we/wy na wiele procesorów CPU.

  • 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 procesorami CPU z wieloma połączeniami. Pomaga to osiągnąć większą skalę operacji we/wy na sekundę i efektywne wykorzystanie procesorów 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ę z jednej maszyny wirtualnej lub małego zestawu maszyn wirtualnych podczas nawiązywania połączenia z udziałami w warstwie Premium. 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 udziałów plików platformy Azure ma obecnie następujące ograniczenia:

  • Obsługiwane tylko na klientach z systemem Windows korzystających z protokołu SMB 3.1.1. Upewnij się, że systemy operacyjne klienta SMB są poprawiane do zalecanych poziomów.
  • Obecnie nieobsługiwane lub zalecane dla klientów z systemem Linux.
  • 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

Na koncie usługi Azure Storage należy włączyć funkcję SMB Multichannel. Zobacz Włączanie funkcji SMB Multichannel.

Wyłączanie funkcji SMB Multichannel

W większości scenariuszy, szczególnie obciążeń wielowątowych, 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.

Sprawdź, czy funkcja SMB Multichannel jest poprawnie skonfigurowana

  1. Utwórz nowy udział plików w warstwie Premium lub użyj istniejącego udziału Premium.
  2. Upewnij się, że klient obsługuje funkcję SMB Multichannel (włączono co najmniej jedną kartę sieciową z włączoną skalowaniem po stronie odbierającej). Aby uzyskać więcej informacji, zapoznaj się z dokumentacją systemu Windows.
  3. Zainstaluj udział 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. Poszukaj właściwości MaxChannels i CurrentChannels.

Zrzut ekranu przedstawiający wyniki get-SMBMultichannel Połączenie ion.

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 plików/wiele wątków: w zależności od wzorca obciążenia powinna być widoczna 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 obciążenia będą korzystać z włączenia funkcji SMB Multichannel, zwłaszcza jeśli obciążenie ma średni rozmiar > we/wy ok. 16 tys. Kilka przykładowych scenariuszy, które korzystają z funkcji SMB Multichannel, to tworzenie kopii zapasowych lub odzyskiwanie pojedynczego dużego pliku. Wyjątek, w którym można wyłączyć funkcję SMB Multichannel, jest to, że obciążenie jest duże w przypadku 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 minimalne korzyści z wydajności wynikające z braku równoległości. 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 używa średnio większego rozmiaru we/wy (> ok. 16 tys.), wówczas powinny wystąpić niewielkie korzyści z wydajności funkcji SMB Multichannel.

Konfiguracja testu wydajnościowego

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

Rozmiar Procesor wirtualny Pamięć: GiB Magazyn tymczasowy (SSD): GiB Maks. liczba dysków danych Maksymalna przepływność pamięci podręcznej i magazynowania tymczasowego: liczba operacji we/wy na sekundę/mb/s (rozmiar pamięci podręcznej w GiB) Maksymalna przepływność dysku bez buforowania: liczba operacji we/wy na sekundę/mb/s Maksymalna liczba kart sieciowych Oczekiwana przepustowość sieci (Mb/s)
Standard_D32s_v3 32 128 256 32 64000/512 (800) 51200/768 8 16000

Zrzut ekranu przedstawiający konfigurację testu wydajnościowego.

Wielowątkowy/wiele plików z funkcją SMB Multichannel

Obciążenie zostało wygenerowane względem 10 plików o różnych rozmiarach operacji we/wy. 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 przepływności.

  • W przypadku pojedynczej karty sieciowej w przypadku operacji odczytu zaobserwowano wzrost wydajności 2x-3x i dla zapisów wzrost liczby operacji we/wy 3x-4x pod względem liczby operacji we/wy na sekundę i przepływności.
  • Funkcja SMB Multichannel zezwala na operacje we/wy na sekundę i przepływność, aby osiągnąć limity maszyn wirtualnych nawet z jedną kartą sieciową i czterema limitami kanałów.
  • Ponieważ ruch wychodzący (lub odczyt do magazynu) nie jest mierzony, przepływność odczytu mogła przekroczyć opublikowany limit 16 000 Mb/s (2 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/pojedyncze pliki z funkcją SMB Multichannel

Obciążenie zostało wygenerowane względem pojedynczego pliku 128 GiB. Po włączeniu funkcji SMB Multichannel test skalowania w górę z wieloma plikami/pojedynczymi plikami pokazał ulepszenia w większości przypadków. Na poniższych diagramach przedstawiono wyniki:

Diagram wydajności operacji we/wy na sekundę.

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

  • W przypadku pojedynczej karty sieciowej o większym średnim rozmiarze we/wy (> ok. 16 tys.) wprowadzono znaczne ulepszenia operacji odczytu i zapisu.
  • W przypadku mniejszych rozmiarów we/wy nastąpił niewielki wpływ na wydajność około 10% z włączoną obsługą 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 udziałów plików SMB w warstwie Premium

Buforowanie metadanych to ulepszenie udziałów plików SMB Azure Premium mających na celu zmniejszenie opóźnienia metadanych, zwiększenie dostępnej liczby operacji we/wy na sekundę i zwiększenie przepływności sieci. Ta funkcja w wersji zapoznawczej ulepsza następujące interfejsy API metadanych i może być używana zarówno z klientów systemów Windows, jak i Linux:

  • Utworzenie
  • Otwarcie
  • Zamknij
  • Delete

Aby dołączyć, zarejestruj się w publicznej wersji zapoznawczej i udostępnimy Dodatkowe informacje. Obecnie ta funkcja w wersji zapoznawczej jest dostępna tylko dla udziałów plików SMB w warstwie Premium (udziały plików w rodzaju konta magazynu FileStorage). Nie ma żadnych dodatkowych kosztów związanych z używaniem tej funkcji.

Dostępność w regionach

Obecnie wersja zapoznawcza buforowania metadanych jest dostępna tylko w następujących regionach świadczenia usługi Azure.

  • Australia Wschodnia
  • Brazylia Południowo-Wschodnia
  • Francja Południowa
  • Niemcy Środkowo-Zachodnie
  • Szwajcaria Północna
  • Środkowe Zjednoczone Emiraty Arabskie
  • Północne Zjednoczone Emiraty Arabskie
  • Zachodnio-środkowe stany USA

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
  • Pulpity wirtualne z katalogami macierzystymi lub innymi obciążeniami, które współdziałają głównie z wieloma małymi plikami, katalogami lub dojściami

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ększanie liczby dostępnych operacji we/wy na sekundę

Buforowanie metadanych może zwiększyć dostępną liczbę operacji we/wy na sekundę o ponad 60% w przypadku obciążeń z dużym obciążeniem metadanych na dużą skalę.

Wykres przedstawiający dostępną operację we/wy na sekundę z buforowaniem metadanych i bez buforowania metadanych.

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.

Następne kroki