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 | ||
Udziały plików w warstwie Standardowa (GPv2), GRS/GZRS | ||
Udziały plików w warstwie Premium (FileStorage), LRS/ZRS |
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
Funkcja SMB Multichannel umożliwia klientowi SMB 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 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 dodatkowych 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 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:
- Dostępne tylko dla udziałów plików platformy Azure w warstwie Premium. Niedostępne dla standardowych udziałów plików platformy Azure.
- 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
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 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 i Stan multichannel protokołu SMB.
Sprawdź, czy funkcja SMB Multichannel jest poprawnie skonfigurowana
- Utwórz nowy udział plików w warstwie Premium lub użyj istniejącego udziału Premium.
- 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.
- Zainstaluj udział plików na kliencie.
- 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.
- Otwórz program PowerShell jako administrator i użyj następującego polecenia:
Get-SmbMultichannelConnection |fl
- Poszukaj 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 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 |
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:
- 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:
- 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 platformy Azure SMB w warstwie Premium mające na celu ulepszenie następujących elementów:
- Zmniejszanie opóźnienia metadanych
- Podniesione limity skalowania metadanych
- Zwiększ spójność opóźnienia, dostępną liczbę operacji we/wy na sekundę i zwiększ przepływność 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
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.
Zarejestruj się w celu uzyskania funkcji
Aby rozpocząć, zarejestruj się w celu uzyskania funkcji przy użyciu witryny Azure Portal lub programu Azure PowerShell.
- Zaloguj się w witrynie Azure Portal.
- Wyszukaj i wybierz pozycję Funkcje w wersji zapoznawczej.
- Wybierz filtr Typ i wybierz pozycję Microsoft.Storage.
- Wybierz pozycję Azure Premium Files Metadata Cache (wersja zapoznawcza ), a następnie wybierz pozycję Zarejestruj.
Ważne
Zezwalaj na dołączanie kont przez 1–2 dni po zakończeniu rejestracji.
Dostępność w regionach
Obecnie wersja zapoznawcza buforowania metadanych jest dostępna tylko w następujących regionach świadczenia usługi Azure. Aby poprosić o dodatkową pomoc techniczną w regionie, zarejestruj się w publicznej wersji zapoznawczej.
- Azja Wschodnia
- Australia Środkowa
- Australia Wschodnia
- Australia Południowo-Wschodnia
- Brazylia Południowa
- Kanada Środkowa
- Kanada Wschodnia
- Europa Północna
- Europa Zachodnia
- Francja Środkowa
- Niemcy Środkowo-Zachodnie
- Japonia Wschodnia
- Japonia Zachodnia
- Indie Zachodnie (Jio)
- Indie Środkowe
- Indie południowe
- Indie Zachodnie
- Izrael Centralny
- Włochy Północne
- Korea Środkowa
- Korea Południowa
- Meksyk Środkowy
- Norwegia Wschodnia
- Polska Środkowa
- Katar Środkowy
- Hiszpania Środkowa
- Północna Republika Południowej Afryki
- Szwecja Środkowa
- Szwajcaria Północna
- Północne Zjednoczone Emiraty Arabskie
- Zachodnie Zjednoczone Królestwo
- Południowe Zjednoczone Królestwo
- Północno-środkowe stany USA
- Południowo-środkowe stany USA
- Zachodnio-środkowe stany USA
- Zachodnie stany USA 2
- Zachodnie stany USA 3
Napiwek
W miarę rozszerzania obsługi regionów dla funkcji pamięci podręcznej metadanych konta magazynu plików w warstwie Premium w tych regionach będą automatycznie dołączane dla wszystkich subskrypcji zarejestrowanych w funkcji buforowania metadanych.
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ę.
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ę.
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ę.
Następne kroki
- Sprawdzanie stanu SMB Multichannel
- Zapoznaj się z dokumentacją systemu Windows dotyczącą funkcji SMB Multichannel