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
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.
Począwszy od lipca 2024 r., funkcja SMB Multichannel będzie domyślnie włączona dla wszystkich nowo utworzonych kont usługi Azure Storage w następujących regionach:
- Australia Środkowa
- Brazylia Południowo–Wschodnia
- Kanada Wschodnia
- Francja Południowa
- Azja Wschodnia
- Southeast Asia
- Indie Środkowe (Jio)
- Indie Zachodnie (Jio)
- Indie Zachodnie
- Japonia Wschodnia
- Japonia Zachodnia
- Korea Południowa
- Europa Północna
- West Europe
- Norwegia Zachodnia
- Południowe Zjednoczone Królestwo
Ś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
- 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
- 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