Azure Premium Storage: projektowanie pod kątem wysokiej wydajności

Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny ✔️ wirtualne z systemem Windows ✔️ — elastyczne zestawy ✔️ skalowania

Ten artykuł zawiera wskazówki dotyczące tworzenia aplikacji o wysokiej wydajności przy użyciu usługi Azure Premium Storage. Instrukcje podane w tym dokumencie można użyć w połączeniu z najlepszymi rozwiązaniami dotyczącymi wydajności dotyczącymi technologii używanych przez aplikację. Aby zilustrować wytyczne, używamy programu SQL Server działającego w usłudze Premium Storage jako przykładu w tym dokumencie.

Chociaż w tym artykule omówimy scenariusze wydajności warstwy magazynowania, należy zoptymalizować warstwę aplikacji. Jeśli na przykład hostujesz farmę programu SharePoint w magazynie w warstwie Premium, możesz użyć przykładów programu SQL Server z tego artykułu, aby zoptymalizować serwer bazy danych. Możesz również zoptymalizować serwer internetowy i serwer aplikacji farmy programu SharePoint, aby uzyskać największą wydajność.

Ten artykuł pomaga odpowiedzieć na następujące typowe pytania dotyczące optymalizacji wydajności aplikacji w usłudze Premium Storage:

  • Jak można zmierzyć wydajność aplikacji?
  • Dlaczego nie widzisz oczekiwanej wysokiej wydajności?
  • Które czynniki wpływają na wydajność aplikacji w usłudze Premium Storage?
  • Jak te czynniki wpływają na wydajność aplikacji w usłudze Premium Storage?
  • Jak można zoptymalizować operacje wejściowe/wyjściowe na sekundę (IOPS), przepustowość i opóźnienie?

Udostępniamy te wytyczne specjalnie dla magazynu w warstwie Premium, ponieważ obciążenia działające w magazynie w warstwie Premium są bardzo wrażliwe na wydajność. Udostępniamy przykłady tam, gdzie jest to konieczne. Niektóre z tych wytycznych można również zastosować do aplikacji działających na maszynach wirtualnych typu infrastruktura jako usługa (IaaS) ze standardowymi dyskami magazynu.

Uwaga

Czasami problem z wydajnością dysku jest w rzeczywistości wąskim gardłem sieci. W takich sytuacjach należy zoptymalizować wydajność sieci.

Jeśli chcesz przeprowadzić test porównawczy dysku, zobacz następujące artykuły:

Jeśli maszyna wirtualna obsługuje przyspieszoną sieć, upewnij się, że jest włączona. Jeśli nie jest włączona, możesz ją włączyć na już wdrożonych maszynach wirtualnych w systemach Windows i Linux.

Przed rozpoczęciem, jeśli dopiero zaczynasz korzystać z magazynu w warstwie Premium, najpierw przeczytaj artykuł Select an Azure disk type for IaaS VMs and Scalability targets for Premium page blob storage accounts (Wybierz typ dysku platformy Azure dla maszyn wirtualnych IaaS i obiektów docelowych skalowalności dla kont magazynu obiektów blob w warstwie Premium).

Wskaźniki wydajności aplikacji

Oceniamy, czy aplikacja działa dobrze, czy nie, używając wskaźników wydajności, takich jak:

  • Jak szybko aplikacja przetwarza żądanie użytkownika.
  • Ile danych przetwarza aplikacja na żądanie.
  • Liczba żądań przetwarzania aplikacji w określonym przedziale czasu.
  • Jak długo użytkownik musi czekać, aby uzyskać odpowiedź po przesłaniu żądania.

Terminy techniczne dla tych wskaźników wydajności to liczba operacji we/wy na sekundę, przepływność lub przepustowość oraz opóźnienie.

W tej sekcji omówimy typowe wskaźniki wydajności w kontekście magazynu w warstwie Premium. W sekcji Lista kontrolna aplikacji wydajności dla dysków dowiesz się, jak mierzyć te wskaźniki wydajności aplikacji. W dalszej części Optymalizacja wydajności aplikacji poznasz czynniki wpływające na te wskaźniki wydajności i zalecenia, aby je zoptymalizować.

Liczba operacji we/wy na sekundę

Liczba operacji we/wy na sekundę to liczba żądań wysyłanych przez aplikację do dysków magazynu w ciągu jednej sekundy. Operację wejścia/wyjścia można odczytywać lub zapisywać, sekwencyjne lub losowe. Aplikacje przetwarzania transakcji online (OLTP), takie jak witryna internetowa handlu detalicznego online, muszą natychmiast przetwarzać wiele współbieżnych żądań użytkowników. Żądania użytkowników są transakcjami bazy danych intensywnie korzystającymi z wstawiania i aktualizacji, które aplikacja musi przetwarzać szybko. Z tego powodu aplikacje OLTP wymagają bardzo dużej liczby operacji we/wy na sekundę.

Aplikacje OLTP obsługują miliony małych i losowych żądań we/wy. Jeśli masz taką aplikację, musisz zaprojektować infrastrukturę aplikacji w celu zoptymalizowania pod kątem liczby operacji we/wy na sekundę. Aby uzyskać więcej informacji na temat wszystkich czynników, które należy wziąć pod uwagę, aby uzyskać wysoką liczbę operacji we/wy na sekundę, zobacz Optymalizowanie wydajności aplikacji.

Po dołączeniu dysku magazynu w warstwie Premium do maszyny wirtualnej o dużej skali platforma Azure aprowizuje gwarantowaną liczbę operacji we/wy na sekundę zgodnie ze specyfikacją dysku. Na przykład dysk P50 aprowizuje 7500 operacji we/wy na sekundę. Każdy rozmiar maszyny wirtualnej o dużej skali ma również określony limit liczby operacji we/wy na sekundę, który może utrzymać. Na przykład maszyna wirtualna Standard GS5 ma limit 80 000 IOPS.

Produktywność

Przepływność lub przepustowość to ilość danych wysyłanych przez aplikację do dysków magazynu w określonym interwale. Jeśli aplikacja wykonuje operacje wejściowe/wyjściowe z dużymi rozmiarami jednostek we/wy, wymaga wysokiej przepływności. Aplikacje magazynu danych mają tendencję do wydawania operacji intensywnie korzystających ze skanowania, które uzyskują dostęp do dużych części danych jednocześnie i często wykonują operacje zbiorcze. Innymi słowy, takie aplikacje wymagają wyższej przepływności. Jeśli masz taką aplikację, musisz zaprojektować jej infrastrukturę, aby zoptymalizować przepływność. W następnej sekcji omówimy czynniki, które należy dostosować, aby osiągnąć tę optymalizację.

Po dołączeniu dysku magazynu w warstwie Premium do maszyny wirtualnej o dużej skali platforma Azure aprowizuje przepływność zgodnie ze specyfikacją tego dysku. Na przykład dysk P50 aprowizuje przepływność dysku o przepustowości 250 MB/s. Każdy rozmiar maszyny wirtualnej o dużej skali ma również określony limit przepływności, który może utrzymać. Na przykład maszyna wirtualna GS5 w warstwie Standardowa ma maksymalną przepływność wynoszącą 2000 MB/s.

Istnieje relacja między przepływnością a operacją we/wy na sekundę, jak pokazano w poniższej formule.

Diagram that shows the relation of IOPS and throughput.

Ważne jest, aby określić optymalną przepływność i wartości liczby operacji we/wy na sekundę wymagane przez aplikację. Podczas próby optymalizacji jednej z nich ma to również wpływ na drugą. Aby uzyskać więcej informacji na temat optymalizowania liczby operacji we/wy na sekundę i przepływności, zobacz Optymalizowanie wydajności aplikacji.

Opóźnienie

Opóźnienie to czas potrzebny aplikacji na odebranie pojedynczego żądania, wysłanie go na dyski magazynu i wysłanie odpowiedzi do klienta. Opóźnienie to kluczowa miara wydajności aplikacji oprócz liczby operacji we/wy na sekundę i przepływności. Opóźnienie dysku magazynu w warstwie Premium to czas potrzebny na pobranie informacji dotyczących żądania i przekazanie go z powrotem do aplikacji. Magazyn w warstwie Premium zapewnia stale małe opóźnienia. Dyski w warstwie Premium mają na celu zapewnienie jednocyfrowych opóźnień milisekundowych dla większości operacji we/wy. Jeśli włączysz buforowanie hostów ReadOnly na dyskach magazynu w warstwie Premium, możesz uzyskać znacznie mniejsze opóźnienie odczytu. Aby uzyskać więcej informacji na temat buforowania dysków, zobacz Buforowanie dysków.

Podczas optymalizowania aplikacji w celu uzyskania większej liczby operacji we/wy na sekundę i przepływności wpływa to na opóźnienie aplikacji. Po dostrojeniu wydajności aplikacji należy zawsze ocenić opóźnienie aplikacji, aby uniknąć nieoczekiwanego dużego opóźnienia.

Następujące operacje płaszczyzny sterowania na dyskach zarządzanych mogą obejmować przenoszenie dysku z jednej lokalizacji magazynu do innej. Ten ruch jest zorganizowany za pośrednictwem kopii danych w tle, co może potrwać kilka godzin. Zazwyczaj czas jest krótszy niż 24 godziny w zależności od ilości danych na dyskach. W tym czasie aplikacja może mieć większe niż zwykle opóźnienie odczytu, ponieważ niektóre operacje odczytu mogą zostać przekierowane do oryginalnej lokalizacji i potrwać dłużej.

W tym okresie nie ma wpływu na opóźnienie zapisu. W przypadku dysków SSD w warstwie Premium w wersji 2 i Ultra, jeśli dysk ma rozmiar sektora 4K, występuje większe opóźnienie odczytu. Jeśli dysk ma rozmiar sektora 512e, występuje zarówno większe opóźnienie odczytu, jak i zapisu.

Operacje płaszczyzny sterowania są używane do:

  • Zaktualizuj typ magazynu.
  • Odłącz i dołącz dysk z jednej maszyny wirtualnej do innej.
  • Utwórz dysk zarządzany na podstawie dysku VHD.
  • Utwórz dysk zarządzany na podstawie migawki.
  • Konwertowanie dysków niezarządzanych na dyski zarządzane.

Lista kontrolna aplikacji wydajności dla dysków

Pierwszym krokiem projektowania aplikacji o wysokiej wydajności działającej w usłudze Premium Storage jest zrozumienie wymagań dotyczących wydajności aplikacji. Po zebraniu wymagań dotyczących wydajności możesz zoptymalizować aplikację, aby osiągnąć najbardziej optymalną wydajność.

W poprzedniej sekcji wyjaśniliśmy typowe wskaźniki wydajności: liczba operacji we/wy na sekundę, przepływność i opóźnienie. Należy określić, które z tych wskaźników wydajności mają kluczowe znaczenie dla aplikacji w celu zapewnienia żądanego środowiska użytkownika. Na przykład duża liczba operacji we/wy na sekundę ma największe znaczenie dla aplikacji OLTP, które przetwarzają miliony transakcji na sekundę. Wysoka przepływność ma krytyczne znaczenie dla aplikacji magazynu danych, które przetwarzają duże ilości danych w ciągu sekundy. Bardzo małe opóźnienie ma kluczowe znaczenie dla aplikacji w czasie rzeczywistym, takich jak witryny internetowe transmisji wideo na żywo.

Następnie zmierz maksymalne wymagania dotyczące wydajności aplikacji przez cały okres istnienia. Użyj poniższej przykładowej listy kontrolnej jako początku. Rejestruj maksymalne wymagania dotyczące wydajności w okresach obciążeń normalnych, szczytowych i poza godzinami pracy. Identyfikując wymagania dotyczące wszystkich poziomów obciążeń, można określić ogólne wymagania dotyczące wydajności aplikacji.

Na przykład normalne obciążenie witryny internetowej handlu elektronicznego to transakcje, które obsługuje w ciągu większości dni w ciągu roku. Szczytowe obciążenie witryny internetowej to transakcje, które obsługuje w okresach świątecznych lub specjalnych imprezach sprzedaży. Szczytowe obciążenie jest zwykle doświadczane przez ograniczony okres, ale może wymagać, aby aplikacja mogła skalować co najmniej dwa razy większą liczbę normalnego działania. Poznaj wymagania dotyczące 50 percentylu, 90 percentylu i 99 percentylu. Te informacje pomagają odfiltrować wszelkie wartości odstające w wymaganiach dotyczących wydajności i można skoncentrować wysiłki na optymalizacji odpowiednich wartości.

Lista kontrolna wymagań dotyczących wydajności aplikacji

Wymagania dotyczące wydajności 50 percentylów 90 percentylów 99 percentylów
Maksymalna liczba transakcji na sekundę
% operacji odczytu
% operacji zapisu
% operacji losowych
% operacji sekwencyjnych
Rozmiar żądania we/wy
Średnia przepływność
Maksymalna przepływność
Minimalne opóźnienie
Średnie opóźnienie
Maksymalna liczba procesorów
Średnie użycie procesora CPU
Maksymalna ilość pamięci
Średnia pamięć
Głębokość kolejki

Uwaga

Rozważ skalowanie tych liczb na podstawie oczekiwanego przyszłego wzrostu aplikacji. Dobrym pomysłem jest zaplanowanie wzrostu z wyprzedzeniem, ponieważ może być trudniej zmienić infrastrukturę pod kątem poprawy wydajności później.

Jeśli masz istniejącą aplikację i chcesz przejść do magazynu w warstwie Premium, najpierw skompiluj poprzednią listę kontrolną dla istniejącej aplikacji. Następnie utwórz prototyp aplikacji w usłudze Premium Storage i zaprojektuj aplikację na podstawie wytycznych opisanych w temacie Optymalizowanie wydajności aplikacji. W następnym artykule opisano narzędzia, których można użyć do zbierania pomiarów wydajności.

Liczniki do mierzenia wymagań dotyczących wydajności aplikacji

Najlepszym sposobem mierzenia wymagań dotyczących wydajności aplikacji jest użycie PerfMonnarzędzi do monitorowania dostarczanych przez system operacyjny serwera. Można użyć w PerfMon systemach Windows i iostat Linux. Te narzędzia przechwytują liczniki odpowiadające każdej mierze wyjaśnionej w poprzedniej sekcji. Należy przechwycić wartości tych liczników, gdy aplikacja uruchamia normalne, szczytowe i pozagodzinne obciążenia.

Liczniki PerfMon są dostępne dla procesora, pamięci i każdego dysku logicznego i dysku fizycznego serwera. W przypadku korzystania z dysków magazynu w warstwie Premium z maszyną wirtualną liczniki dysków fizycznych są przeznaczone dla każdego dysku magazynu w warstwie Premium, a liczniki dysków logicznych są dla każdego woluminu utworzonego na dyskach magazynu w warstwie Premium. Należy przechwycić wartości dysków hostujących obciążenie aplikacji. Jeśli istnieje mapowanie jeden do jednego między dyskami logicznymi i fizycznymi, możesz odwołać się do liczników dysków fizycznych. W przeciwnym razie należy odwołać się do liczników dysku logicznego.

W systemie Linux iostat polecenie generuje raport użycia procesora CPU i dysku. Raport wykorzystania dysku zawiera statystyki dotyczące poszczególnych urządzeń fizycznych lub partycji. Jeśli masz serwer bazy danych z danymi i dziennikami na oddzielnych dyskach, zbierz te dane dla obu dysków. W poniższej tabeli opisano liczniki dysków, procesorów i pamięci.

Licznik opis Perfmon iostat
Liczba operacji we/wy na sekundę lub liczba transakcji na sekundę Liczba żądań we/wy wystawionych na dysku magazynu na sekundę Odczyty dysku na sekundę
Zapisy dysku na sekundę
Tps
r/s
w/s
Odczyty i zapisy dysku % operacji odczytu i zapisu wykonywanych na dysku % czasu odczytu dysku
% czasu zapisu dysku
r/s
w/s
Produktywność Ilość danych odczytywanych lub zapisywanych na dysku/s Bajty odczytu dysku na sekundę
Bajty zapisu dysku na sekundę
kB_read/s
kB_wrtn/s
Opóźnienie Łączny czas ukończenia żądania we/wy dysku Średnia liczba sekund na dysku/odczyt
Średnia liczba s/zapis na dysku
Await
svctm
Rozmiar we/wy Problemy z żądaniami we/wy dotyczące rozmiaru dysków magazynu Średnia liczba bajtów dysku/odczyt
Średnie bajty dysku/zapis
avgrq-sz
Głębokość kolejki Liczba zaległych żądań we/wy oczekujących na odczyt lub zapisanie na dysku magazynu Bieżąca długość kolejki dysku avgqu-sz
Maksymalna ilość pamięci Ilość pamięci wymaganej do bezproblemowego uruchamiania aplikacji % zatwierdzonych bajtów w użyciu Korzystanie z vmstat
Maksymalna liczba procesorów Ilość procesora CPU wymagana do bezproblemowego uruchamiania aplikacji % czasu procesora %util

Dowiedz się więcej o narzędziach iostat i PerfMon.

Optymalizowanie wydajności aplikacji

Główne czynniki wpływające na wydajność aplikacji działającej w magazynie w warstwie Premium to charakter żądań we/wy, rozmiaru maszyny wirtualnej, rozmiaru dysku, liczby dysków, buforowania dysku, wielowątku i głębokości kolejki. Niektóre z tych czynników można kontrolować za pomocą pokrętła dostarczonego przez system.

Większość aplikacji może nie umożliwiać bezpośredniej zmiany rozmiaru operacji we/wy i głębokości kolejki. Jeśli na przykład używasz programu SQL Server, nie możesz wybrać rozmiaru operacji we/wy i głębokości kolejki. Program SQL Server wybiera optymalny rozmiar operacji we/wy i wartości głębokości kolejki, aby uzyskać największą wydajność. Ważne jest, aby zrozumieć wpływ obu typów czynników na wydajność aplikacji, aby umożliwić aprowizację odpowiednich zasobów w celu zaspokojenia potrzeb związanych z wydajnością.

W tej sekcji zapoznaj się z listą kontrolną wymagań aplikacji, która została utworzona, aby określić, ile należy zoptymalizować wydajność aplikacji. Na podstawie listy kontrolnej możesz określić, które czynniki z tej sekcji należy dostosować.

Aby zobaczyć wpływ każdego czynnika na wydajność aplikacji, uruchom narzędzia do testów porównawczych w konfiguracji aplikacji. Aby uzyskać instrukcje uruchamiania typowych narzędzi do testów porównawczych na maszynach wirtualnych z systemem Windows i Linux, zobacz artykuły dotyczące testów porównawczych na końcu tego dokumentu.

Błyskawiczne optymalizowanie liczby operacji we/wy na sekundę, przepływności i opóźnień

W poniższej tabeli przedstawiono podsumowanie czynników wydajności i kroków niezbędnych do zoptymalizowania liczby operacji we/wy na sekundę, przepływności i opóźnień. W poniższych sekcjach podsumowania opisano bardziej szczegółowy opis każdego czynnika.

Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych i liczby operacji we/wy na sekundę, przepływności i opóźnień dostępnych dla każdego typu maszyny wirtualnej, zobacz Rozmiary maszyn wirtualnych na platformie Azure.

Czynniki wydajności Liczba operacji we/wy na sekundę Przepływność Opóźnienie
Przykładowy scenariusz Aplikacja OLTP przedsiębiorstwa wymagająca bardzo wysokich transakcji na sekundę. Aplikacja do magazynowania danych przedsiębiorstwa przetwarza duże ilości danych. Aplikacje niemal w czasie rzeczywistym wymagające natychmiastowej odpowiedzi na żądania użytkowników, takie jak gry online.
Czynniki wydajności      
Rozmiar we/wy Mniejszy rozmiar operacji we/wy daje większą liczbę operacji we/wy na sekundę. Większy rozmiar we/wy daje większą przepływność.  
Rozmiar maszyny wirtualnej Użyj rozmiaru maszyny wirtualnej, który oferuje liczbę operacji we/wy na sekundę większą niż wymaganie aplikacji. Użyj rozmiaru maszyny wirtualnej z limitem przepływności większym niż wymaganie aplikacji. Użyj rozmiaru maszyny wirtualnej, który oferuje limity skalowania większe niż wymaganie aplikacji.
Rozmiar dysku Użyj rozmiaru dysku, który oferuje liczbę operacji we/wy na sekundę większą niż wymaganie aplikacji. Użyj rozmiaru dysku z limitem przepływności większym niż wymaganie aplikacji. Użyj rozmiaru dysku, który oferuje limity skalowania większe niż wymaganie aplikacji.
Limity skalowania maszyn wirtualnych i dysków Limit liczby operacji we/wy na sekundę wybranego rozmiaru maszyny wirtualnej powinien być większy niż łączna liczba operacji we/wy na sekundę sterowana przez dołączone do niego dyski magazynu. Limit przepływności wybranego rozmiaru maszyny wirtualnej powinien być większy niż łączna przepływność sterowana przez dołączone do niej dyski magazynu w warstwie Premium. Limity skalowania wybranego rozmiaru maszyny wirtualnej muszą być większe niż łączne limity skali dołączonych dysków magazynu w warstwie Premium.
Buforowanie dysku Włącz pamięć podręczną ReadOnly na dyskach magazynu w warstwie Premium z dużymi operacjami odczytu, aby uzyskać większą liczbę operacji we/wy odczytu na sekundę.   Włącz pamięć podręczną ReadOnly na dyskach magazynu w warstwie Premium z dużymi obciążeniami odczytu, aby uzyskać bardzo małe opóźnienia odczytu.
Rozbieranie dysku Użyj wielu dysków i rozmieść je razem, aby uzyskać łączny wyższy limit liczby operacji we/wy na sekundę i przepływności. Łączny limit na maszynę wirtualną powinien być wyższy niż łączne limity dołączonych dysków w warstwie Premium.    
Rozmiar paska Mniejszy rozmiar paska dla losowego małego wzorca we/wy widocznego w aplikacjach OLTP. Na przykład użyj rozmiaru paska 64 KB dla aplikacji OLTP programu SQL Server. Większy rozmiar paska dla sekwencyjnego dużego wzorca we/wy widocznego w aplikacjach magazynu danych. Na przykład użyj rozmiaru paska 256 KB dla aplikacji magazynu danych programu SQL Server.  
Wielowątkowość Użyj wielowątków, aby wypchnąć większą liczbę żądań do magazynu w warstwie Premium, aby prowadzić do zwiększenia liczby operacji we/wy na sekundę i przepływności. Na przykład w programie SQL Server ustaw wysoką wartość MAXDOP, aby przydzielić więcej procesorów CPU do programu SQL Server.    
Głębokość kolejki Większa głębokość kolejki daje większą liczbę operacji we/wy na sekundę. Większa głębokość kolejki zapewnia większą przepływność. Mniejsza głębokość kolejki daje mniejsze opóźnienia.

Charakter żądań we/wy

Żądanie we/wy to jednostka operacji wejścia/wyjścia wykonywana przez aplikację. Identyfikowanie charakteru żądań we/wy, losowych lub sekwencyjnych, odczytu lub zapisu, małych lub dużych, pomaga określić wymagania dotyczące wydajności aplikacji. Ważne jest, aby zrozumieć charakter żądań we/wy w celu podejmowania odpowiednich decyzji podczas projektowania infrastruktury aplikacji. W celu uzyskania najlepszej możliwej wydajności należy równomiernie rozłożyć we/wy.

Rozmiar we/wy jest jednym z ważniejszych czynników. Rozmiar we/wy to rozmiar żądania operacji wejścia/wyjścia wygenerowanego przez aplikację. Rozmiar operacji we/wy wpływa znacząco na wydajność, zwłaszcza na liczbę operacji we/wy na sekundę i przepustowość, którą aplikacja może osiągnąć. Poniższa formuła przedstawia relację między operacjami we/wy na sekundę, rozmiarem we/wy i przepustowością/przepływnością.

A diagram that shows the equation I O P S times I O size equals throughput.

Niektóre aplikacje umożliwiają zmianę ich rozmiaru we/wy, a niektóre aplikacje nie. Na przykład program SQL Server określa optymalny rozmiar we/wy i nie zapewnia użytkownikom żadnych pokrętł, aby go zmienić. Z drugiej strony oracle udostępnia parametr o nazwie DB_BLOCK_SIZE, którego można użyć do skonfigurowania rozmiaru żądania we/wy bazy danych.

Jeśli używasz aplikacji, która nie zezwala na zmianę rozmiaru operacji we/wy, skorzystaj z wytycznych w tym artykule, aby zoptymalizować kluczowy wskaźnik WYDAJNOŚCI, który jest najbardziej istotny dla aplikacji. Na przykład:

  • Aplikacja OLTP generuje miliony małych i losowych żądań we/wy. Aby obsługiwać te typy żądań we/wy, należy zaprojektować infrastrukturę aplikacji, aby uzyskać większą liczbę operacji we/wy na sekundę.
  • Aplikacja magazynowania danych generuje duże i sekwencyjne żądania we/wy. Aby obsługiwać te typy żądań we/wy, należy zaprojektować infrastrukturę aplikacji, aby uzyskać większą przepustowość lub przepływność.

Jeśli używasz aplikacji, która umożliwia zmianę rozmiaru we/wy, użyj tej reguły dla rozmiaru we/wy oprócz innych wytycznych dotyczących wydajności:

  • Mniejszy rozmiar operacji we/wy w celu uzyskania większej liczby operacji we/wy na sekundę. Na przykład 8 KB dla aplikacji OLTP.
  • Większy rozmiar we/wy w celu uzyskania większej przepustowości/przepływności. Na przykład 1024 KB dla aplikacji magazynu danych.

Oto przykład sposobu obliczania liczby operacji we/wy na sekundę i przepływności/przepustowości dla aplikacji.

Rozważmy aplikację korzystającą z dysku P30. Maksymalna liczba operacji we/wy na sekundę i przepustowość dysku P30 to odpowiednio 5000 operacji we/wy na sekundę i 200 MB/s. Jeśli aplikacja wymaga maksymalnej liczby operacji we/wy na sekundę z dysku P30 i używasz mniejszego rozmiaru operacji we/wy, na przykład 8 KB, uzyskana przepustowość wynosi 40 MB/s. Jeśli aplikacja wymaga maksymalnej przepływności/przepustowości z dysku P30 i używasz większego rozmiaru operacji we/wy, na przykład 1024 KB, wynikowa liczba operacji we/wy na sekundę jest mniejsza, na przykład 200 operacji we/wy na sekundę.

Dostosuj rozmiar operacji we/wy, aby spełniał zarówno wymagania dotyczące liczby operacji we/wy aplikacji, jak i przepływności/przepustowości. W poniższej tabeli przedstawiono podsumowanie różnych rozmiarów operacji we/wy oraz odpowiadających im operacji we/wy na sekundę i przepływności dla dysku P30.

Wymaganie dotyczące aplikacji Rozmiar we/wy Liczba operacji we/wy na sekundę Przepływność/przepustowość
Maksymalna liczba operacji we/wy na sekundę 8 KB 5,000 40 MB/s
Maksymalna przepływność 1024 KB 200 200 MB/s
Maksymalna przepływność i duża liczba operacji we/wy na sekundę 64 KB 3,200 200 MB/s
Maksymalna liczba operacji we/wy na sekundę i wysoka przepływność 32 KB 5,000 160 MB/s

Aby uzyskać liczbę operacji we/wy na sekundę i przepustowość większą niż maksymalna wartość pojedynczego dysku magazynu w warstwie Premium, użyj wielu dysków w warstwie Premium rozłożonych razem. Na przykład usuń dwa dyski P30, aby uzyskać łączną liczbę operacji we/wy na sekundę wynoszącą 10 000 operacji we/wy na sekundę lub łączną przepływność wynoszącą 400 MB/s. Jak wyjaśniono w następnej sekcji, należy użyć rozmiaru maszyny wirtualnej, który obsługuje łączną liczbę operacji we/wy na sekundę dysku i przepływność.

Uwaga

W miarę zwiększania liczby operacji we/wy na sekundę lub przepływności inne również rosną. Upewnij się, że nie osiągasz limitów przepływności ani liczby operacji we/wy na sekundę dysku lub maszyny wirtualnej podczas zwiększania liczby operacji we/wy na sekundę.

Aby sprawdzić wpływ rozmiaru operacji we/wy na wydajność aplikacji, możesz uruchomić narzędzia do testów porównawczych na maszynie wirtualnej i dyskach. Utwórz wiele przebiegów testów i użyj innego rozmiaru operacji we/wy dla każdego przebiegu, aby zobaczyć efekt. Aby uzyskać więcej informacji, zobacz artykuły dotyczące testów porównawczych na końcu tego dokumentu.

Rozmiary maszyn wirtualnych o dużej skali

Podczas projektowania aplikacji należy wybrać maszynę wirtualną do hostowania aplikacji. Magazyn w warstwie Premium ma duże rozmiary maszyn wirtualnych, które mogą uruchamiać aplikacje wymagające wyższej mocy obliczeniowej i wysoką wydajność operacji we/wy dysku lokalnego. Te maszyny wirtualne zapewniają szybsze procesory, wyższy stosunek pamięci do rdzenia i dysk półprzewodnikowy (SSD) dla dysku lokalnego. Przykładami maszyn wirtualnych o dużej skali obsługujących magazyn w warstwie Premium są maszyny wirtualne serii DS i GS.

Maszyny wirtualne o dużej skali są dostępne w różnych rozmiarach z inną liczbą rdzeni procesora CPU, pamięci, systemu operacyjnego i rozmiaru dysku tymczasowego. Każdy rozmiar maszyny wirtualnej ma również maksymalną liczbę dysków danych, które można dołączyć do maszyny wirtualnej. Wybrany rozmiar maszyny wirtualnej ma wpływ na ilość dostępnego przetwarzania, pamięci i pojemności magazynu dla aplikacji. Wpływa również na koszt zasobów obliczeniowych i magazynu. Na przykład następujące specyfikacje dotyczą największego rozmiaru maszyny wirtualnej w serii DS i serii GS.

Rozmiar maszyny wirtualnej Rdzenie procesora CPU Pamięć Rozmiary dysków maszyny wirtualnej Maksymalna liczba dysków danych Rozmiar pamięci podręcznej Liczba operacji we/wy na sekundę Limity operacji we/wy pamięci podręcznej przepustowości
Standardowa_DS14 16 112 GB System operacyjny = 1023 GB
Lokalny dysk SSD = 224 GB
32 576 GB 50 000 operacji we/wy na sekundę
512 MB/s
4000 operacji we/wy na sekundę i 33 MB/s
Standardowa_GS5 32 448 GB System operacyjny = 1023 GB
Lokalny dysk SSD = 896 GB
64 4224 GB 80 000 operacji we/wy na sekundę
2000 MB/s
5000 operacji we/wy na sekundę i 50 MB/s

Aby wyświetlić pełną listę wszystkich dostępnych rozmiarów maszyn wirtualnych platformy Azure, zobacz Rozmiary maszyn wirtualnych na platformie Azure. Wybierz rozmiar maszyny wirtualnej, który może spełniać i skalować do żądanych wymagań dotyczących wydajności aplikacji. Podczas wybierania rozmiarów maszyn wirtualnych należy również wziąć pod uwagę następujące ważne kwestie.

Limity skalowania

Maksymalne limity liczby operacji we/wy na sekundę na maszynę wirtualną i na dysk są różne i niezależne od siebie. Upewnij się, że aplikacja kieruje operacjami we/wy na sekundę w granicach maszyny wirtualnej i dołączonymi do niej dyskami w warstwie Premium. W przeciwnym razie ograniczanie wydajności aplikacji.

Załóżmy na przykład, że wymaganie aplikacji wynosi maksymalnie 4000 operacji we/wy na sekundę. Aby osiągnąć ten poziom, należy aprowizować dysk P30 na maszynie wirtualnej DS1. Dysk P30 może dostarczać do 5000 operacji we/wy na sekundę. Jednak maszyna wirtualna DS1 jest ograniczona do 3200 operacji we/wy na sekundę. Dlatego wydajność aplikacji jest ograniczona przez limit maszyny wirtualnej na poziomie 3200 operacji we/wy na sekundę i wydajność jest obniżona. Aby zapobiec takiej sytuacji, wybierz maszynę wirtualną i rozmiar dysku, który spełnia wymagania aplikacji.

Koszt operacji

W wielu przypadkach jest możliwe, że całkowity koszt operacji przy użyciu magazynu w warstwie Premium jest niższy niż użycie magazynu w warstwie Standardowa.

Rozważmy na przykład aplikację, która wymaga 16 000 operacji we/wy na sekundę. Aby osiągnąć tę wydajność, potrzebujesz Standard_D14 maszyny wirtualnej IaaS platformy Azure, która może dać maksymalną liczbę operacji we/wy na sekundę 16 000 przy użyciu 32 standardowych dysków magazynu 1 TB. Każdy dysk magazynu w warstwie 1 TB w warstwie Standardowa może osiągnąć maksymalnie 500 operacji we/wy na sekundę.

  • Szacowany koszt tej maszyny wirtualnej miesięcznie wynosi 1570 USD.
  • Miesięczny koszt 32 dysków magazynu w warstwie Standardowa wynosi 1638 USD.
  • Szacowany całkowity miesięczny koszt wynosi 3208 USD.

Jeśli ta sama aplikacja jest hostowana w magazynie w warstwie Premium, potrzebujesz mniejszego rozmiaru maszyny wirtualnej i mniejszej liczby dysków magazynu w warstwie Premium, co zmniejsza całkowity koszt. Maszyna wirtualna Standard_DS13 może spełniać wymagania dotyczące 16 000 operacji we/wy na sekundę przy użyciu czterech dysków P30. Maszyna wirtualna DS13 ma maksymalną liczbę operacji we/wy na sekundę wynoszącą 25 600, a każdy dysk P30 ma maksymalną liczbę operacji we/wy na sekundę wynoszącą 5000. Ogólnie rzecz biorąc, ta konfiguracja może osiągnąć 5000 x 4 = 20 000 operacji we/wy na sekundę.

  • Szacowany koszt tej maszyny wirtualnej miesięcznie wynosi 1003 USD.
  • Miesięczny koszt czterech dysków magazynu W warstwie Premium P30 wynosi 544,34 USD.
  • Szacowany całkowity miesięczny koszt wynosi 1544 USD.

Poniższa tabela zawiera podsumowanie podziału kosztów tego scenariusza dla magazynu w warstwie Standardowa i Premium.

Koszt miesięczny Standardowa (Standard) Premium
Koszt maszyny wirtualnej miesięcznie 1570,58 USD (Standard_D14) 1003,66 USD (Standard_DS13)
Koszt dysków miesięcznie $1,638.40 (32 x 1 TB dysków) $544.34 (4 x dyski P30)
Całkowity koszt miesięcznie 3208,98 USD 1544,34 USD

Linuksa

Dzięki usłudze Premium Storage uzyskasz taki sam poziom wydajności dla maszyn wirtualnych z systemami Windows i Linux. Obsługujemy wiele odmian dystrybucji systemu Linux. Aby uzyskać więcej informacji, zobacz Dystrybucje systemu Linux zatwierdzone na platformie Azure.

Różne dystrybucje lepiej nadają się do różnych typów obciążeń. W zależności od dystrybucji, na której działa obciążenie, są widoczne różne poziomy wydajności. Przetestuj dystrybucje systemu Linux przy użyciu aplikacji i wybierz dystrybucję, która działa najlepiej.

Po uruchomieniu systemu Linux z usługą Premium Storage sprawdź najnowsze aktualizacje dotyczące wymaganych sterowników, aby zapewnić wysoką wydajność.

Rozmiary dysków magazynu w warstwie Premium

Magazyn w warstwie Premium oferuje różne rozmiary, dzięki czemu możesz wybrać taki, który najlepiej odpowiada Twoim potrzebom. Każdy rozmiar dysku ma inny limit skalowania dla liczby operacji we/wy na sekundę, przepustowości i magazynu. Wybierz odpowiedni rozmiar dysku magazynu w warstwie Premium w zależności od wymagań aplikacji i rozmiaru maszyny wirtualnej o dużej skali. W poniższej tabeli przedstawiono rozmiary dysków i ich możliwości. Rozmiary P4, P6, P15, P60, P70 i P80 są obecnie obsługiwane tylko dla dysków zarządzanych.

Rozmiary dysków SSD w warstwie Premium P1 P2 P3 P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Rozmiar dysku w GiB 100 8 16 32 64 128 256 512 1,024 2048 4,096 8,192 16,384 32 767
Podstawowa aprowizowana ilość operacji we/wy na sekundę na dysk 120 120 120 120 240 500 1,100 2300 5,000 7500 7500 16 000 18 000 20,000
**Rozszerzono aprowizowaną operację we/wy na sekundę na dysk Brak NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY Brak 8000 16 000 20,000 20,000 20,000 20,000
Aprowizowana przepływność podstawowa na dysk 25 MB/s 25 MB/s 25 MB/s 25 MB/s 50 MB/s 100 MB/s 125 MB/s 150 MB/s 200 MB/s 250 MB/s 250 MB/s 500 MB/s 750 MB/s 900 MB/s
**Rozszerzona aprowizowana przepływność na dysk Brak NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY NIE DOTYCZY Brak 300 MB/s 600 MB/s 900 MB/s 900 MB/s 900 MB/s 900 MB/s
Maksymalna liczba operacji we/wy na sekundę na dysk 3500 3500 3500 3500 3500 3500 3500 3500 30,000* 30,000* 30,000* 30,000* 30,000* 30,000*
Maksymalna przepływność serii na dysk 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 170 MB/s 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s* 1000 MB/s*
Maksymalny czas trwania serii 30 min 30 min 30 min 30 min 30 min 30 min 30 min 30 min Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony*
Kwalifikowanie się do rezerwacji Nie Nr Nr Nr Nr Nr Nr Nie. Tak, do jednego roku Tak, do jednego roku Tak, do jednego roku Tak, do jednego roku Tak, do jednego roku Tak, do jednego roku

*Dotyczy tylko dysków z włączonym skalowaniem na żądanie.
** Dotyczy tylko dysków z włączoną wydajnością i (wersja zapoznawcza).

Liczba wybranych dysków zależy od wybranego rozmiaru dysku. Aby spełnić wymagania aplikacji, można użyć jednego dysku P50 lub wielu dysków P10. Podczas dokonywania wyboru należy wziąć pod uwagę zagadnienia wymienione tutaj.

Limity skalowania (liczba operacji we/wy na sekundę i przepływność)

Limity liczby operacji we/wy na sekundę i przepływności każdego rozmiaru dysku w warstwie Premium różnią się i są niezależne od limitów skalowania maszyn wirtualnych. Upewnij się, że łączna liczba operacji we/wy na sekundę i przepływność z dysków mieści się w granicach skalowania wybranego rozmiaru maszyny wirtualnej.

Jeśli na przykład wymaganie aplikacji wynosi maksymalnie 250 MB/s przepływności i używasz maszyny wirtualnej DS4 z pojedynczym dyskiem P30, maszyna wirtualna DS4 może zrezygnować z przepływności do 256 MB/s. Jednak pojedynczy dysk P30 ma limit przepływności wynoszący 200 MB/s. Dlatego aplikacja jest ograniczona o 200 MB/s ze względu na limit dysku. Aby wyeliminować ten limit, aprowizuj więcej niż jeden dysk danych na maszynie wirtualnej lub zmień rozmiar dysków na P40 lub P50.

Uwaga

Operacje odczytu obsługiwane przez pamięć podręczną nie są uwzględniane na sekundę dysku i przepływności, więc nie podlegają limitom dysków. Pamięć podręczna ma oddzielny limit liczby operacji we/wy na sekundę i przepływność na maszynę wirtualną.

Na przykład początkowo odczyty i zapisy to odpowiednio 60 MB/s i 40 MB/s. Z czasem pamięć podręczna rozgrzewa się i obsługuje coraz więcej odczytów z pamięci podręcznej. Następnie można uzyskać większą przepływność zapisu z dysku.

Liczba dysków

Określ liczbę potrzebnych dysków, oceniając wymagania aplikacji. Każdy rozmiar maszyny wirtualnej ma również limit liczby dysków, które można dołączyć do maszyny wirtualnej. Zazwyczaj ta ilość jest dwukrotnie większa niż liczba rdzeni. Upewnij się, że wybrany rozmiar maszyny wirtualnej może obsługiwać wymaganą liczbę dysków.

Pamiętaj, że dyski magazynu w warstwie Premium mają większe możliwości wydajności w porównaniu ze standardowymi dyskami magazynu. Jeśli migrujesz aplikację z maszyny wirtualnej IaaS platformy Azure przy użyciu magazynu w warstwie Standardowa do magazynu w warstwie Premium, prawdopodobnie potrzebujesz mniejszej liczby dysków w warstwie Premium, aby osiągnąć taką samą lub wyższą wydajność aplikacji.

Buforowanie dysku

Maszyny wirtualne o dużej skali korzystające z magazynu w warstwie Premium mają technologię buforowania wielowarstwowego o nazwie BlobCache. Usługa BlobCache używa kombinacji pamięci RAM hosta i lokalnego dysku SSD do buforowania. Ta pamięć podręczna jest dostępna dla dysków trwałych magazynu w warstwie Premium i dysków lokalnych maszyn wirtualnych. Domyślnie to ustawienie pamięci podręcznej jest ustawione na ReadWrite dla dysków systemu operacyjnego i ReadOnly dla dysków danych hostowanych w usłudze Premium Storage. Dzięki włączeniu buforowania dysku na dyskach magazynu w warstwie Premium maszyny wirtualne o dużej skali mogą osiągnąć bardzo wysokie poziomy wydajności, które przekraczają wydajność dysku bazowego.

Ostrzeżenie

Buforowanie dysków nie jest obsługiwane w przypadku dysków 4 TiB i większych. Jeśli do maszyny wirtualnej jest dołączonych wiele dysków, każdy dysk, który jest mniejszy niż 4 TiB, obsługuje buforowanie.

Zmienianie ustawień pamięci podręcznej dysku platformy Azure powoduje odłączenie i ponowne dołączenie dysku docelowego. Jeśli jest to dysk systemu operacyjnego, maszyna wirtualna zostanie ponownie uruchomiona. Zatrzymaj wszystkie aplikacje i usługi, które mogą mieć wpływ na te zakłócenia przed zmianą ustawienia pamięci podręcznej dysku. Nie przestrzegać tych zaleceń może prowadzić do uszkodzenia danych.

Aby dowiedzieć się więcej o sposobie działania usługi BlobCache , zobacz wpis w blogu Inside Azure Premium Storage (Wewnątrz usługi Azure Premium Storage ).

Ważne jest, aby włączyć buforowanie po prawej stronie zestawu dysków. Niezależnie od tego, czy należy włączyć buforowanie dysków na dysku w warstwie Premium, czy nie, zależy od wzorca obciążenia, który obsługuje dysk. W poniższej tabeli przedstawiono domyślne ustawienia pamięci podręcznej dla systemu operacyjnego i dysków danych.

Typ dysku Domyślne ustawienie pamięci podręcznej
Dysk systemu operacyjnego Readwrite
Dysk danych Tylko do odczytu

Zalecamy następujące ustawienia pamięci podręcznej dysku dla dysków danych.

Ustawienie buforowania dysku Zalecenie dotyczące tego, kiedy należy użyć tego ustawienia
Brak Skonfiguruj pamięć podręczną hosta jako Brak dla dysków tylko do zapisu i zapisu.
Tylko do odczytu Skonfiguruj pamięć podręczną hosta jako funkcję ReadOnly dla dysków tylko do odczytu i odczytu i zapisu.
Readwrite Skonfiguruj pamięć podręczną hosta jako funkcję ReadWrite tylko wtedy, gdy aplikacja prawidłowo obsługuje zapisywanie danych w pamięci podręcznej na dyskach trwałych w razie potrzeby.

Tylko do odczytu

Konfigurując buforowanie funkcji ReadOnly na dyskach danych magazynu w warstwie Premium, możesz uzyskać małe opóźnienie odczytu i uzyskać bardzo wysoką operację we/wy odczytu i przepływność dla aplikacji z dwóch powodów:

  1. Operacje odczytu wykonywane z pamięci podręcznej, która znajduje się na maszynie wirtualnej i lokalnym dysku SSD, są szybsze niż odczyty z dysku danych, który znajduje się w usłudze Azure Blob Storage.
  2. Usługa Premium Storage nie zlicza odczytów obsługiwanych z pamięci podręcznej w kierunku liczby operacji we/wy na sekundę dysku i przepływności. Z tego powodu aplikacja może osiągnąć większą łączną liczbę operacji we/wy na sekundę i przepływność.

Readwrite

Domyślnie dyski systemu operacyjnego mają włączoną buforowanie ReadWrite . Niedawno dodaliśmy obsługę buforowania ReadWrite na dyskach danych. Jeśli używasz buforowania ReadWrite , musisz mieć odpowiedni sposób zapisywania danych z pamięci podręcznej na dyski trwałe. Na przykład program SQL Server obsługuje zapisywanie danych w pamięci podręcznej na dyskach magazynu trwałego samodzielnie. Używanie pamięci podręcznej ReadWrite z aplikacją, która nie obsługuje utrwalania wymaganych danych, może prowadzić do utraty danych, jeśli maszyna wirtualna ulegnie awarii.

Brak

Obecnie brak jest obsługiwany tylko na dyskach danych. Nie jest obsługiwany na dyskach systemu operacyjnego. Jeśli ustawisz opcję Brak na dysku systemu operacyjnego, zastąpi to ustawienie wewnętrznie i ustawi je na ReadOnly.

Na przykład możesz zastosować te wytyczne do programu SQL Server działającego w usłudze Premium Storage, wykonując następujące kroki:

  1. Skonfiguruj pamięć podręczną ReadOnly na dyskach magazynu w warstwie Premium hostujących pliki danych.
    1. Szybkie operacje odczytu z pamięci podręcznej obniżają czas wykonywania zapytań programu SQL Server, ponieważ strony danych są pobierane szybciej z pamięci podręcznej w porównaniu bezpośrednio z dysków danych.
    2. Obsługa odczytów z pamięci podręcznej oznacza, że jest dostępna większa przepływność z dysków danych w warstwie Premium. Program SQL Server może używać tej dodatkowej przepływności w celu pobierania większej liczby stron danych i innych operacji, takich jak tworzenie kopii zapasowej/przywracanie, ładowanie wsadowe i ponowne kompilowanie indeksu.
  2. Skonfiguruj pamięć podręczną None na dyskach magazynu w warstwie Premium hostujących pliki dziennika.
    1. Pliki dziennika mają przede wszystkim operacje z dużym obciążeniem zapisem, więc nie korzystają z pamięci podręcznej ReadOnly .

Optymalizowanie wydajności na maszynach wirtualnych z systemem Linux

W przypadku wszystkich dysków SSD w warstwie Premium lub Ultra Disk można wyłączyć bariery dla systemów plików na dysku, aby zwiększyć wydajność, gdy wiadomo, że nie ma żadnych pamięci podręcznych, które mogą utracić dane. Jeśli buforowanie dysków platformy Azure jest ustawione na Wartość ReadOnly lub None, możesz wyłączyć bariery. Jednak jeśli buforowanie jest ustawione na ReadWrite, bariery powinny pozostać włączone, aby zapewnić trwałość zapisu. Bariery są zwykle domyślnie włączone, ale można wyłączyć bariery przy użyciu jednej z następujących metod w zależności od typu systemu plików:

  • reiserFS: użyj opcji barrier=none mount, aby wyłączyć bariery. Aby jawnie włączyć bariery, użyj parametru barrier=flush.
  • ext3/ext4: Użyj opcji bariery =0 , aby wyłączyć bariery. Aby jawnie włączyć bariery, użyj bariery =1.
  • XFS: użyj opcji instalacji nobarrier , aby wyłączyć bariery. Aby jawnie włączyć bariery, należy użyć bariery. Od wersji 4.10 głównego jądra systemu Linux projekt systemu plików XFS zawsze zapewnia trwałość. Wyłączenie barier nie ma wpływu i opcja nobarrier jest przestarzała. Jednak niektóre dystrybucje systemu Linux mogły przywrócić zmiany w wydaniu dystrybucji z wcześniejszą wersją jądra. Sprawdź u dostawcy dystrybucji stan w używanej dystrybucji i wersji.

Rozbieranie dysku

Po dołączeniu maszyny wirtualnej o dużej skali z kilkoma dyskami trwałymi magazynu w warstwie Premium dyski mogą być rozłożone razem, aby agregować swoje liczby operacji we/wy, przepustowość i pojemność magazynu.

W systemie Windows można użyć Miejsca do magazynowania, aby rozebrać dyski razem. Należy skonfigurować jedną kolumnę dla każdego dysku w puli. W przeciwnym razie ogólna wydajność woluminu rozłożonego może być niższa niż oczekiwano z powodu nierównomiernego rozkładu ruchu na dyskach.

Za pomocą interfejsu użytkownika Menedżer serwera można ustawić łączną liczbę kolumn na 8 wartość dla woluminu rozłożonego. W przypadku dołączania więcej niż ośmiu dysków użyj programu PowerShell, aby utworzyć wolumin. Za pomocą programu PowerShell można ustawić liczbę kolumn równą liczbie dysków. Jeśli na przykład w jednym zestawie pasków znajduje się 16 dysków, określ 16 kolumny w NumberOfColumns parametrze New-VirtualDisk polecenia cmdlet programu PowerShell.

W systemie Linux użyj narzędzia MDADM, aby rozdzielić dyski razem. Aby uzyskać instrukcje dotyczące usuwania dysków w systemie Linux, zobacz Konfigurowanie programowej macierzy RAID w systemie Linux.

Rozmiar paska

Ważną konfiguracją w rozdzieraniu dysku jest rozmiar paska. Rozmiar paska lub rozmiar bloku jest najmniejszym fragmentem danych, które aplikacja może rozwiązać na woluminie rozłożonym. Konfigurowany rozmiar paska zależy od typu aplikacji i jej wzorca żądania. Jeśli wybierzesz niewłaściwy rozmiar paska, może to prowadzić do niezgodności operacji we/wy, co prowadzi do obniżenia wydajności aplikacji.

Jeśli na przykład żądanie we/wy wygenerowane przez aplikację jest większe niż rozmiar paska dysku, system magazynu zapisuje je w granicach jednostek rozłożonych na więcej niż jednym dysku. Gdy nadszedł czas na uzyskanie dostępu do tych danych, musi on szukać w więcej niż jednej jednostce paska, aby ukończyć żądanie. Skumulowany efekt takiego zachowania może prowadzić do znacznego obniżenia wydajności. Z drugiej strony, jeśli rozmiar żądania we/wy jest mniejszy niż rozmiar paska, a jeśli jest losowy, żądania we/wy mogą się sumować na tym samym dysku, powodując wąskie gardło i ostatecznie obniżając wydajność operacji we/wy.

W zależności od typu obciążenia, które aplikacja jest uruchomiona, wybierz odpowiedni rozmiar paska. W przypadku losowych małych żądań we/wy użyj mniejszego rozmiaru paska. W przypadku dużych żądań we/wy sekwencyjnych użyj większego rozmiaru paska. Zapoznaj się z zaleceniami dotyczącymi rozmiaru paska dla aplikacji, która będzie działać w usłudze Premium Storage. W przypadku programu SQL Server skonfiguruj rozmiar paska o rozmiarze 64 KB dla obciążeń OLTP i 256 KB dla obciążeń magazynowania danych. Aby uzyskać więcej informacji, zobacz Performance best practices for SQL Server on Azure VMs (Najlepsze rozwiązania dotyczące wydajności programu SQL Server na maszynach wirtualnych platformy Azure).

Uwaga

Można rozłożyć maksymalnie 32 dyski magazynu w warstwie Premium na maszynie wirtualnej serii DS i 64 dyski magazynu w warstwie Premium na maszynie wirtualnej z serii GS.

Wielowątkowość

Platforma Azure zaprojektowała platformę Premium Storage, która ma być bardzo równoległa. Z tego powodu aplikacja wielowątkowa osiąga wyższą wydajność niż aplikacja jednowątkowa. Aplikacja wielowątkowa dzieli swoje zadania na wiele wątków i zwiększa wydajność wykonywania, wykorzystując maszynę wirtualną i zasoby dysku do maksymalnej wartości.

Jeśli na przykład aplikacja jest uruchomiona na jednej podstawowej maszynie wirtualnej przy użyciu dwóch wątków, procesor CPU może przełączać się między dwoma wątkami, aby osiągnąć wydajność. Gdy jeden wątek czeka na zakończenie operacji we/wy dysku, procesor może przełączyć się na drugi wątek. W ten sposób dwa wątki mogą osiągnąć więcej niż jeden wątek. Jeśli maszyna wirtualna ma więcej niż jeden rdzeń, dodatkowo zmniejsza czas wykonywania, ponieważ każdy rdzeń może uruchamiać zadania równolegle.

Zmiana sposobu implementacji pojedynczego wątku lub wielowątkowego aplikacji może nie być w stanie zmienić sposobu, w jaki aplikacja poza półki implementuje pojedyncze wątki lub wielowątkowość. Na przykład program SQL Server może obsługiwać wiele procesorów i wiele rdzeni. Jednak program SQL Server decyduje o tym, jakie warunki używa co najmniej jednego wątku do przetwarzania zapytania. Może uruchamiać zapytania i tworzyć indeksy przy użyciu wielowątków. W przypadku zapytania obejmującego łączenie dużych tabel i sortowanie danych przed powrotem do użytkownika program SQL Server prawdopodobnie używa wielu wątków. Użytkownik nie może kontrolować, czy program SQL Server uruchamia zapytanie przy użyciu jednego wątku, czy wielu wątków.

Istnieją ustawienia konfiguracji, które można zmienić, aby wpłynąć na wielowątkowy lub równoległe przetwarzanie aplikacji. Na przykład w przypadku programu SQL Server jest max degree of parallelism to konfiguracja. To ustawienie o nazwie MAXDOP umożliwia skonfigurowanie maksymalnej liczby procesorów, których program SQL Server może używać podczas przetwarzania równoległego. Można skonfigurować opcję MAXDOP dla poszczególnych zapytań lub operacji indeksowania. Ta funkcja jest przydatna, gdy chcesz zrównoważyć zasoby systemu dla aplikacji o krytycznym znaczeniu dla wydajności.

Załóżmy na przykład, że aplikacja korzystająca z programu SQL Server uruchamia duże zapytanie i operację indeksu w tym samym czasie. Załóżmy, że operacja indeksu ma być bardziej wydajna w porównaniu z dużym zapytaniem. W takim przypadku można ustawić wartość MAXDOP operacji indeksu na wyższą niż wartość MAXDOP dla zapytania. Dzięki temu program SQL Server ma więcej procesorów niż może być używany do operacji indeksowania w porównaniu z liczbą procesorów, które może przeznaczyć na duże zapytanie. Pamiętaj, że nie kontrolujesz liczby wątków używanych przez program SQL Server dla każdej operacji. Maksymalną liczbę procesorów dedykowanych dla wielowątkowość można kontrolować.

Dowiedz się więcej o stopniach równoległości w programie SQL Server. Dowiedz się, jak takie ustawienia wpływają na wielowątkowanie w aplikacji i ich konfiguracjach w celu zoptymalizowania wydajności.

Głębokość kolejki

Głębokość kolejki lub długość kolejki lub rozmiar kolejki to liczba oczekujących żądań we/wy w systemie. Wartość głębokości kolejki określa liczbę operacji we/wy, które aplikacja może ustawić w kolejce, co przetwarza dyski magazynu. Ma to wpływ na wszystkie trzy wskaźniki wydajności aplikacji omówione w tym artykule: liczba operacji we/wy na sekundę, przepływność i opóźnienie.

Głębokość kolejki i wielowątkowość są ściśle powiązane. Wartość głębokości kolejki wskazuje, ile można osiągnąć wielowątkowość przez aplikację. Jeśli głębokość kolejki jest duża, aplikacja może uruchamiać więcej operacji jednocześnie, innymi słowy, więcej wielowątkowość. Jeśli głębokość kolejki jest mała, mimo że aplikacja jest wielowątkowa, nie będzie mieć wystarczającej liczby żądań ustawionych do współbieżnego wykonywania.

Zazwyczaj aplikacje poza półki nie pozwalają na zmianę głębokości kolejki, ponieważ jeśli jest ona ustawiona niepoprawnie, nie szkodzi więcej niż dobrze. Aplikacje ustawiają odpowiednią wartość głębokości kolejki, aby uzyskać optymalną wydajność. Ważne jest, aby zrozumieć tę koncepcję, aby można było rozwiązywać problemy z wydajnością aplikacji. Możesz również obserwować skutki głębokości kolejki, uruchamiając narzędzia do testów porównawczych w systemie.

Niektóre aplikacje udostępniają ustawienia mające wpływ na głębokość kolejki. Na przykład ustawienie MAXDOP w programie SQL Server wyjaśniono w poprzedniej sekcji. MAXDOP to sposób wywierania wpływu na głębokość kolejki i wielowątkowość, chociaż nie zmienia bezpośrednio wartości głębokości kolejki programu SQL Server.

Wysoka głębokość kolejki

Duża głębokość kolejki składa się z większej liczby operacji na dysku. Dysk zna następne żądanie w kolejce z wyprzedzeniem. Dlatego dysk może planować operacje przed upływem czasu i przetwarzać je w optymalnej sekwencji. Ponieważ aplikacja wysyła więcej żądań na dysk, dysk może przetwarzać bardziej równoległe we/wy. Ostatecznie aplikacja może osiągnąć większą liczbę operacji we/wy na sekundę. Ponieważ aplikacja przetwarza więcej żądań, łączna przepływność aplikacji również wzrasta.

Zazwyczaj aplikacja może osiągnąć maksymalną przepływność z 8 do 16+ zaległych operacji we/wy na dołączony dysk. Jeśli głębokość kolejki jest jedną, aplikacja nie wypycha wystarczającej liczby operacji we/wy do systemu i przetwarza mniejszą ilość w danym okresie. Innymi słowy, mniejsza przepływność.

Na przykład w programie SQL Server ustawienie wartości MAXDOP dla zapytania w celu 4 poinformowania programu SQL Server, że może użyć maksymalnie czterech rdzeni do uruchomienia zapytania. Program SQL Server określa najlepszą wartość głębokości kolejki i liczbę rdzeni dla wykonywania zapytania.

Optymalna głębokość kolejki

Bardzo wysoka wartość głębokości kolejki ma również swoje wady. Jeśli wartość głębokości kolejki jest zbyt wysoka, aplikacja próbuje uruchomić bardzo wysoką operację we/wy na sekundę. Jeśli aplikacja nie ma dysków trwałych z wystarczającą aprowizowaną operacją we/wy na sekundę, bardzo duża wartość głębokości kolejki może negatywnie wpłynąć na opóźnienia aplikacji. Poniższa formuła przedstawia relację między operacjami we/wy na sekundę, opóźnieniami i głębokością kolejki.

A diagram that shows the equation I O P S times latency equals queue depth.

Nie należy konfigurować głębokości kolejki do żadnej wysokiej wartości, ale do optymalnej wartości, która może dostarczać wystarczającą liczbę operacji we/wy na sekundę dla aplikacji bez wpływu na opóźnienia. Jeśli na przykład opóźnienie aplikacji musi wynosić 1 milisekund, głębokość kolejki wymagana do osiągnięcia 5000 operacji we/wy na sekundę to QD = 5000 x 0,001 = 5.

Głębokość kolejki dla woluminu rozłożonego

W przypadku woluminu rozłożonego należy zachować wystarczającą głębokość kolejki, tak aby każdy dysk miał pojedynczą głębokość kolejki szczytowej. Rozważmy na przykład aplikację, która wypycha głębokość 2 kolejki, a na pasku znajdują się cztery dyski. Dwa żądania we/wy przechodzą do dwóch dysków, a pozostałe dwa dyski są bezczynne. W związku z tym należy skonfigurować głębokość kolejki, aby wszystkie dyski mogły być zajęte. Poniższa formuła pokazuje, jak określić głębokość kolejki woluminów rozłożonych.

A diagram that shows the equation Q D per disk times number of columns per volume equals Q D of striped volume.

Ograniczanie przepływności

Usługa Premium Storage aprowizuje określoną liczbę operacji we/wy na sekundę i przepływność w zależności od wybranych rozmiarów maszyn wirtualnych i dysków. Za każdym razem, gdy aplikacja próbuje zwiększyć liczbę operacji we/wy na sekundę lub przepływność powyżej tych limitów, co może obsłużyć maszyna wirtualna lub dysk, ogranicza ją magazyn w warstwie Premium. Wynikiem jest obniżona wydajność aplikacji, co może oznaczać większe opóźnienia, niższą przepływność lub niższą liczbę operacji we/wy na sekundę.

Jeśli magazyn w warstwie Premium nie ogranicza się, aplikacja może całkowicie zakończyć się niepowodzeniem, przekraczając zasoby, które mogą osiągnąć. Aby uniknąć problemów z wydajnością z powodu ograniczania przepustowości, zawsze należy aprowizować wystarczające zasoby dla aplikacji. Zapoznaj się z zagadnieniami omówionymi w poprzednich sekcjach rozmiarów maszyn wirtualnych i rozmiarów dysków. Benchmarking to najlepszy sposób, aby dowiedzieć się, jakie zasoby są potrzebne do hostowania aplikacji.

Następne kroki

Jeśli chcesz przeprowadzić test porównawczy dysku, zobacz następujące artykuły:

Dowiedz się więcej o dostępnych typach dysków:

Aby uzyskać informacje o użytkownikach programu SQL Server, zobacz artykuły dotyczące najlepszych rozwiązań dotyczących wydajności programu SQL Server: