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żywać w połączeniu z najlepszymi rozwiązaniami dotyczącymi wydajności dotyczącymi technologii używanych przez aplikację. Aby zilustrować wytyczne, używaliśmy SQL Server uruchomionych na Premium Storage jako przykład w tym dokumencie.

Chociaż w tym artykule omówimy scenariusze wydajności dla warstwy magazynu, należy zoptymalizować warstwę aplikacji. Jeśli na przykład hostujesz farmę programu SharePoint na platformie Azure Premium Storage, możesz użyć przykładów SQL Server z tego artykułu, aby zoptymalizować serwer bazy danych. Ponadto zoptymalizuj serwer sieci Web i serwer aplikacji farmy programu SharePoint, aby uzyskać największą wydajność.

Ten artykuł pomoże odpowiedzieć na typowe pytania dotyczące optymalizacji wydajności aplikacji na platformie Azure Premium Storage,

  • Jak zmierzyć wydajność aplikacji?
  • Dlaczego nie widzisz oczekiwanej wysokiej wydajności?
  • Które czynniki wpływają na wydajność aplikacji na Premium Storage?
  • Jak te czynniki wpływają na wydajność aplikacji na Premium Storage?
  • Jak można zoptymalizować operacje we/wy na sekundę, przepustowość i opóźnienie?

Podaliśmy te wytyczne specjalnie dla Premium Storage, ponieważ obciążenia działające na Premium Storage są bardzo wrażliwe na wydajność. Podaliśmy 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 IaaS z dyskami usługi Storage w warstwie Standardowa.

Uwaga

Czasami wydaje się, że 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 porównać dysk, zobacz nasze artykuły dotyczące testów porównawczych dysku:

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 Premium Storage, najpierw przeczytaj artykuł Select an Azure disk type for IaaS VMs and Scalability targets for Premium page blob Storage accounts (Wybieranie typu 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żywa wskaźników wydajności, takich jak, jak szybko aplikacja przetwarza żądanie użytkownika, ile danych aplikacja przetwarza na żądanie, ile żądań, ile żądań jest przetwarzaniem 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 wspólne wskaźniki wydajności w kontekście Premium Storage. W poniższej sekcji zebranie wymagań aplikacji dowiesz się, jak mierzyć te wskaźniki wydajności aplikacji. W dalszej części Optymalizowanie 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ę

Operacje we/wy na sekundę lub operacje wejściowe/wyjściowe to liczba żądań wysyłanych przez aplikację do dysków magazynu w ciągu jednej sekundy. Operację wejściową/wyjściową 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ą wstawiać i aktualizować intensywne transakcje bazy danych, które aplikacja musi przetwarzać szybko. W związku z tym aplikacje OLTP wymagają bardzo dużej liczby operacji we/wy na sekundę. Takie aplikacje obsługują miliony małych i losowych żądań we/wy. Jeśli masz taką aplikację, musisz zaprojektować infrastrukturę aplikacji, aby zoptymalizować pod kątem liczby operacji we/wy na sekundę. W temacie Optymalizowanie wydajności aplikacji szczegółowo omawiamy wszystkie czynniki, które należy wziąć pod uwagę w celu uzyskania dużej liczby operacji we/wy na sekundę.

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

Przepływność

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 wystawiania operacji intensywnie korzystających ze skanowania, które uzyskują dostęp do dużych porcji danych w czasie i często wykonują operacje zbiorcze. Innymi słowy, takie aplikacje wymagają większej przepływności. Jeśli masz taką aplikację, musisz zaprojektować jej infrastrukturę, aby zoptymalizować przepływność. W następnej sekcji szczegółowo omówiono czynniki, które należy dostosować, aby to osiągnąć.

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 wynoszącą 250 MB na sekundę. Każdy rozmiar maszyny wirtualnej o dużej skali ma również określony limit przepływności, jaki może utrzymać. Na przykład maszyna wirtualna Standard GS5 ma maksymalną przepływność wynoszącą 2000 MB na sekundę.

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

Relacja liczby operacji we/wy na sekundę i przepływności

Dlatego ważne jest określenie optymalnej przepływności i wartości liczby operacji we/wy na sekundę, których wymaga aplikacja. Gdy próbujesz zoptymalizować jeden, drugi również zostanie dotknięty. W temacie Optymalizowanie wydajności aplikacji omówimy więcej szczegółów dotyczących optymalizowania liczby operacji we/wy na sekundę i przepływności.

Opóźnienie

Opóźnienie to czas potrzebny aplikacji na odebranie pojedynczego żądania, wysłanie go na dyski magazynu i wysłanie odpowiedzi do klienta. Jest to krytyczna 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. Premium Storage zapewnia spójne małe opóźnienia. Dyski w warstwie Premium zostały zaprojektowane tak, aby zapewnić opóźnienia z jedną cyfrą milisekund dla większości operacji we/wy. Jeśli włączysz buforowanie hosta ReadOnly na dyskach magazynu w warstwie Premium, możesz uzyskać znacznie mniejsze opóźnienie odczytu. Bardziej szczegółowo omówiono buforowanie dysków w buforowaniu dysku.

Podczas optymalizacji aplikacji w celu uzyskania większej liczby operacji we/wy na sekundę i przepływności będzie to miało wpływ na opóźnienie aplikacji. Po dostrajaniu 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 Dyski zarządzane mogą obejmować przenoszenie dysku z jednej lokalizacji magazynu do innej. Jest to orkiestrowane za pośrednictwem kopii w tle danych, które mogą potrwać kilka godzin, zazwyczaj mniej 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 mogą potrwać dłużej. W tym okresie nie ma wpływu na opóźnienie zapisu.

  • 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 na platformie Azure 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, operacje we/wy na sekundę, przepływność i opóźnienie. Musisz określić, które z tych wskaźników wydajności mają kluczowe znaczenie dla aplikacji, aby zapewnić żądane środowisko użytkownika. Na przykład duża liczba operacji we/wy na sekundę ma największe znaczenie dla aplikacji OLTP przetwarzających miliony transakcji na sekundę. Podczas gdy wysoka przepływność ma kluczowe znaczenie dla Data Warehouse aplikacji przetwarzających 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 do przesyłania strumieniowego wideo na żywo.

Następnie należy zmierzyć 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 będzie transakcjami, które obsługuje w ciągu większości dni w ciągu roku. Szczytowe obciążenie witryny internetowej będzie transakcjami, które obsługuje w okresie świątecznym lub w specjalnych wydarzeniach 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 normalne działanie. Poznaj wymagania dotyczące 50 percentylu, 90 percentylu i 99 percentylu. Pomaga to odfiltrować wszelkie wartości odstające w wymaganiach dotyczących wydajności i skoncentrować wysiłki na optymalizacji odpowiednich wartości.

Lista kontrolna wymagań dotyczących wydajności aplikacji

Wymagania dotyczące wydajności 50 Percentyl 90 Percentyl 99 Percentyl
Maksymalnie z Transakcje na sekundę
% operacji odczytu
% operacji zapisu
% operacji losowych
% operacji sekwencyjnych
Rozmiar żądania we/wy
Średnia przepływność
Maksymalnie z Przepływność
Min. Opóźnienie
Średnie opóźnienie
Maksymalnie z Procesor CPU
Średni procesor CPU
Maksymalnie z Memory (Pamięć)
Średnia pamięć
Głębokość kolejki

Uwaga

Należy rozważyć 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ę w celu poprawy wydajności później.

Jeśli masz istniejącą aplikację i chcesz przejść do Premium Storage, najpierw utwórz listę kontrolną powyżej dla istniejącej aplikacji. Następnie utwórz prototyp aplikacji na Premium Storage i zaprojektuj aplikację na podstawie wytycznych opisanych w sekcji 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 narzędzi do monitorowania wydajności udostępnianych przez system operacyjny serwera. Możesz użyć narzędzia PerfMon dla systemu Windows i iostat dla systemu Linux. Te narzędzia przechwytują liczniki odpowiadające każdej mierze wyjaśnionej w powyższej sekcji. Należy przechwycić wartości tych liczników, gdy aplikacja uruchamia normalne, szczytowe i poza godzinami pracy.

Liczniki Wydajności 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ą przeznaczone 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 jedno mapowanie między dyskami logicznymi i fizycznymi, można odwołać się do liczników dysków fizycznych; w przeciwnym razie odwołuje się do liczników dysku logicznego. W systemie Linux polecenie iostat 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 transakcje Liczba żądań we/wy wystawionych na dysk magazynu na sekundę. Odczyty dysku/s 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
Przepływność Ilość danych odczytanych lub zapisywanych na dysku na sekundę. Bajty odczytu dysku/s Bajty zapisu dysku/s kB_read/s kB_wrtn/s
Opóźnienie Całkowity czas ukończenia żądania we/wy dysku. Średni dysk na sekundę/średni odczyt na sekundę/zapis await svctm
Rozmiar operacji we/wy Rozmiar żądań we/wy dotyczy problemów z dyskami magazynu. Średnia liczba bajtów dysku/średnia liczba bajtów/zapisu na dysku avgrq-sz
Głębokość kolejki Liczba oczekujących żądań we/wy oczekujących na odczyt lub zapisanie na dysku magazynu. Bieżąca długość kolejki dysku avgqu-sz
Maksymalnie z Memory (Pamięć) Ilość pamięci wymaganej do bezproblemowego uruchamiania aplikacji Zadeklarowane bajty w użyciu (%) Korzystanie z parametru vmstat
Maksymalnie z Procesor CPU 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 uruchomionej na Premium Storage to Nature of IO requests, VM size, Disk size, Disk size, Number of disk disk, disk caching, multithreading, and queue depth (Rozmiar dysku, Liczba dysków, buforowanie dysku, wielowątkowość i głębokość 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 SQL Server, nie możesz wybrać rozmiaru operacji we/wy i głębokości kolejki. SQL Server wybiera optymalne wartości rozmiaru operacji we/wy i 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 utworzoną listą kontrolną wymagań aplikacji, aby określić, ile należy zoptymalizować wydajność aplikacji. W oparciu o to będzie można określić czynniki z tej sekcji, które należy dostosować. Aby zobaczyć wpływ każdego czynnika na wydajność aplikacji, uruchom narzędzia do testów porównawczych w konfiguracji aplikacji. Zapoznaj się z artykułem Dotyczącym testów porównawczych, połączonym na końcu, aby uzyskać instrukcje uruchamiania typowych narzędzi do testów porównawczych na maszynach wirtualnych z systemami Windows i Linux.

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

W poniższej tabeli podsumowano czynniki wydajności i kroki niezbędne do zoptymalizowania liczby operacji we/wy na sekundę, przepływności i opóźnień. Sekcje opisane w tym podsumowaniu opisują każdy czynnik jest znacznie bardziej szczegółowy.

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.

Liczba operacji we/wy na sekundę Przepływność Opóźnienie
Przykładowy scenariusz Aplikacja OLTP dla przedsiębiorstw wymaga bardzo dużej liczby transakcji na sekundę. Aplikacja do magazynowania danych przedsiębiorstwa przetwarza duże ilości danych. Aplikacje niemal w czasie rzeczywistym wymagające błyskawicznych odpowiedzi na żądania użytkowników, takie jak gry online.
Czynniki wydajności      
Rozmiar operacji we/wy Mniejszy rozmiar operacji we/wy daje większą liczbę operacji we/wy na sekundę. Większy rozmiar operacji we/wy w celu uzyskania wyższej przepływności.  
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 niej 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 skalowania dołączonych dysków magazynu w warstwie Premium.
Buforowanie dysku Włącz funkcję ReadOnly Cache na dyskach magazynu w warstwie Premium z dużymi operacjami odczytu, aby uzyskać większą ilość operacji we/wy odczytu na sekundę.   Włącz funkcję ReadOnly Cache na dyskach magazynu w warstwie Premium z dużymi operacjami odczytu, aby uzyskać bardzo małe opóźnienia odczytu.
Rozkładanie dysku Użyj wielu dysków i usuń 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 woluminu rozłożonego Mniejszy rozmiar paska dla losowego małego wzorca we/wy widocznego w aplikacjach OLTP. Na przykład użyj rozmiaru paska o rozmiarze 64 KB dla SQL Server aplikacji OLTP. Większy rozmiar paska dla sekwencyjnego dużego wzorca we/wy widocznego w aplikacjach Data Warehouse. Na przykład użyj rozmiaru paska o rozmiarze 256 KB dla aplikacji magazynu danych SQL Server.  
Wielowątkowość Użyj wielowątków, aby wypchnąć większą liczbę żądań do Premium Storage, co doprowadzi do zwiększenia liczby operacji we/wy na sekundę i przepływności. Na przykład na SQL Server ustaw wysoką wartość MAXDOP, aby przydzielić więcej procesorów CPU do SQL Server.    
Głębokość kolejki Większa głębokość kolejki daje większą liczba operacji we/wy na sekundę. Większa głębokość kolejki daje większą przepływność. Mniejsza głębokość kolejki daje mniejsze opóźnienia.

Charakter żądań we/wy

Żądanie we/wy jest jednostką operacji wejścia/wyjścia, którą aplikacja będzie wykonywać. Określenie charakteru żądań we/wy, losowych lub sekwencyjnych, odczytu lub zapisu, małych lub dużych, pomoże określić wymagania dotyczące wydajności aplikacji. Ważne jest, aby zrozumieć charakter żądań we/wy, aby podejmować właściwe decyzje podczas projektowania infrastruktury aplikacji. Aby osiągnąć najlepszą możliwą wydajność, należy równomiernie dystrybuować obiekty we/wy.

Rozmiar operacji we/wy jest jednym z ważniejszych czynników. Rozmiar operacji we/wy to rozmiar żądania operacji wejścia/wyjścia wygenerowanego przez aplikację. Rozmiar operacji we/wy ma znaczący wpływ 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 operacji we/wy i przepustowością.
Diagram przedstawiający równanie I O P S rozmiar operacji we/wy równy przepływności.

Niektóre aplikacje umożliwiają zmianę rozmiaru operacji we/wy, a niektóre aplikacje nie. Na przykład SQL Server określa optymalny rozmiar operacji we/wy i nie zapewnia użytkownikom żadnych pokrętł do zmiany. Z drugiej strony oracle udostępnia parametr o nazwie DB_BLOCK_SIZE , przy użyciu którego można skonfigurować rozmiar żą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 odpowiedni dla aplikacji. Na przykład

  • Aplikacja OLTP generuje miliony małych i losowych żądań we/wy. Aby obsłużyć te typy żądań we/wy, należy zaprojektować infrastrukturę aplikacji, aby uzyskać większą liczbę operacji we/wy na sekundę.
  • Aplikacja do 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ć wyższą przepustowość lub przepływność.

Jeśli używasz aplikacji, która umożliwia zmianę rozmiaru operacji we/wy, użyj tej reguły dla rozmiaru operacji 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 operacji 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 na sekundę. Jeśli teraz aplikacja wymaga maksymalnej liczby operacji we/wy na sekundę z dysku P30 i użyjesz mniejszego rozmiaru operacji we/wy, takiego jak 8 KB, uzyskana przepustowość będzie wynosić 40 MB na sekundę. Jeśli jednak aplikacja wymaga maksymalnej przepływności/przepustowości z dysku P30 i używasz większego rozmiaru operacji we/wy, takiego jak 1024 KB, wynikowa liczba operacji we/wy na sekundę będzie mniejsza, 200 operacji we/wy na sekundę. W związku z tym dostosuj rozmiar operacji we/wy, tak aby spełniał wymagania dotyczące liczby operacji we/wy na sekundę i przepustowości aplikacji. W poniższej tabeli podsumowano różne rozmiary operacji we/wy oraz odpowiadające im operacje we/wy na sekundę i przepływność dla dysku P30.

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

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 na sekundę. 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 zwiększa się również, upewnij się, że nie osiągniesz limitów przepływności lub liczby operacji we/wy na sekundę dysku lub maszyny wirtualnej podczas zwiększania jednego z nich.

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ć wpływ. Aby uzyskać więcej informacji, zapoznaj się z artykułem Dotyczącym testów porównawczych, połączonym na końcu.

Rozmiary maszyn wirtualnych o dużej skali

Podczas projektowania aplikacji należy wybrać maszynę wirtualną do hostowania aplikacji. Premium Storage ma rozmiary maszyn wirtualnych o dużej skali, które mogą uruchamiać aplikacje wymagające większej mocy obliczeniowej i wysoką wydajność operacji we/wy dysku lokalnego. Te maszyny wirtualne zapewniają szybsze procesory, wyższy współczynnik pamięci do rdzenia i dysk Solid-State (SSD) dla dysku lokalnego. Przykładami maszyn wirtualnych obsługujących Premium Storage na dużą skalę 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. W związku z tym wybrany rozmiar maszyny wirtualnej będzie mieć wpływ na ilość przetwarzania, pamięci i pojemności magazynu dla aplikacji. Ma również wpływ na koszt zasobów obliczeniowych i magazynu. Poniżej przedstawiono na przykład specyfikacje największego rozmiaru maszyny wirtualnej w serii DS i serii GS:

Rozmiar maszyny wirtualnej Rdzenie procesora CPU Memory (Pamięć) Rozmiary dysków maszyn wirtualnych Maksymalnie z dyski 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 lokalnych dysków SSD = 224 GB 32 576 GB 50 000 operacji we/wy na sekundę 512 MB na sekundę 4000 operacji we/wy na sekundę i 33 MB na sekundę
Standardowa_GS5 32 448 GB System operacyjny = 1023 GB lokalnego dysku SSD = 896 GB 64 4224 GB 80 000 operacji we/wy na sekundę 2000 MB na sekundę 5000 operacji we/wy na sekundę i 50 MB na sekundę

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. Oprócz tego należy wziąć pod uwagę następujące ważne kwestie podczas wybierania rozmiarów maszyn wirtualnych.

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, a także dołączonymi do niej dyskami w warstwie Premium. W przeciwnym razie wydajność aplikacji będzie ograniczać przepływność.

Załóżmy na przykład, że wymaganie aplikacji wynosi maksymalnie 4000 operacji we/wy na sekundę. Aby to osiągnąć, aprowizujesz 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ę. W związku z tym wydajność aplikacji zostanie ograniczona przez limit maszyny wirtualnej na poziomie 3200 operacji we/wy na sekundę, a wydajność będzie obniżona. Aby zapobiec tej sytuacji, wybierz maszynę wirtualną i rozmiar dysku, który będzie spełniać wymagania aplikacji.

Koszt operacji
W wielu przypadkach jest możliwe, że całkowity koszt operacji przy użyciu Premium Storage jest niższy niż w przypadku korzystania z usługi Storage w warstwie Standardowa.

Rozważmy na przykład aplikację, która wymaga 16 000 operacji we/wy na sekundę. Aby osiągnąć tę wydajność, potrzebna będzie Standard_D14 maszyny wirtualnej IaaS platformy Azure, która może zapewnić 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 jednak hostujesz tę samą aplikację na Premium Storage, będziesz potrzebować 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łnić wymagania dotyczące liczby operacji we/wy na sekundę na 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 warstwy Standardowa i Premium Storage.

  Standardowa 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 Azure Premium Storage uzyskujesz ten sam poziom wydajności dla maszyn wirtualnych z systemami Windows i Linux. Obsługujemy wiele smaków dystrybucji systemu Linux. Aby uzyskać więcej informacji, zobacz Dystrybucje systemu Linux zatwierdzone na platformie Azure. Należy pamiętać, że różne dystrybucje są lepiej dostosowane do różnych typów obciążeń. Zobaczysz różne poziomy wydajności w zależności od dystrybucji, na której działa obciążenie. Przetestuj dystrybucje systemu Linux przy użyciu aplikacji i wybierz ten, który działa najlepiej.

Podczas uruchamiania systemu Linux z Premium Storage sprawdź najnowsze aktualizacje dotyczące wymaganych sterowników, aby zapewnić wysoką wydajność.

Rozmiary dysków magazynu w warstwie Premium

Usługa Azure Premium Storage oferuje różne rozmiary, dzięki czemu możesz wybrać taki, który najlepiej odpowiada Twoim potrzebom. Każdy rozmiar dysku ma inny limit skali dla liczby operacji we/wy na sekundę, przepustowości i magazynu. Wybierz odpowiedni Premium Storage Rozmiar dysku 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 Dyski zarządzane.

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 4 8 16 32 64 128 256 512 1,024 2048 4,096 8192 16 384 32 767
Aprowizuj aprowizowaną operację we/wy na sekundę na dysk 120 120 120 120 240 500 1,100 2300 5000 7500 7500 16 000 18 000 20 000
Aprowizowana przepływność 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
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 minut 30 minut 30 minut 30 minut 30 minut 30 minut 30 minut 30 minut Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony* Nieograniczony*
Kwalifikuje się do rezerwacji Nie Nie Nie Nie Nie Nie Nie 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.

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 poniżej.

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. W związku z tym aplikacja będzie ograniczona o 200 MB/s ze względu na limit dysku. Aby wyeliminować ten limit, należy aprowizować więcej niż jeden dysk danych na maszynie wirtualnej lub zmienić rozmiar dysków na P40 lub P50.

Uwaga

Odczyty obsługiwane przez pamięć podręczną nie są uwzględniane na sekundę dysku i przepływności, dlatego nie podlegają limitom dysku. 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 są 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 jest to dwukrotnie większa liczba rdzeni. Upewnij się, że wybrany rozmiar maszyny wirtualnej może obsługiwać wymaganą liczbę dysków.

Pamiętaj, że dyski Premium Storage mają większą wydajność niż dyski Standard Storage. W związku z tym w przypadku migrowania aplikacji z maszyny wirtualnej IaaS platformy Azure przy użyciu usługi Standard Storage do Premium Storage prawdopodobnie będzie potrzebna mniejsza liczba dysków w warstwie Premium w celu osiągnięcia tej samej lub wyższej wydajności aplikacji.

Buforowanie dysku

Maszyny wirtualne o dużej skali, które korzystają z usługi Azure Premium Storage mają wielowarstwową technologię buforowania 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 Premium Storage i dysków lokalnych maszyny wirtualnej. Domyślnie to ustawienie pamięci podręcznej jest ustawione na odczyt/zapis dla dysków systemu operacyjnego i odczytOnly dla dysków danych hostowanych na Premium Storage. Dzięki włączeniu buforowania dysku na dyskach Premium Storage maszyny wirtualne o dużej skali mogą osiągnąć bardzo wysoki poziom wydajności, który przekracza podstawową wydajność dysku.

Ostrzeżenie

Buforowanie dysków nie jest dostępne dla dysków o pojemności 4 TiB i większych. Jeśli do maszyny wirtualnej jest dołączonych wiele dysków, każdy dysk mniejszy niż 4 TiB będzie obsługiwać 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. Zatrzymasz wszystkie aplikacje/usługi, na które może mieć wpływ to zakłócenie, przed zmianą ustawień pamięci podręcznej dysku. Nie przestrzeganie tych zaleceń może prowadzić do uszkodzenia danych.

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

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

Typ dysku Domyślne ustawienie pamięci podręcznej
Dysk systemu operacyjnego Odczyt/zapis
Dysk danych ReadOnly

Poniżej przedstawiono zalecane ustawienia pamięci podręcznej dysku dla dysków danych,

Ustawienie buforowania dysku zalecenie dotyczące tego, kiedy należy używać tego ustawienia
Brak Skonfiguruj pamięć podręczną hosta jako Brak dla dysków tylko do zapisu i zapisu.
ReadOnly Skonfiguruj pamięć podręczną hosta jako readOnly dla dysków tylko do odczytu i odczytu i zapisu.
Odczyt/zapis Skonfiguruj pamięć podręczną hosta jako readWrite tylko wtedy, gdy aplikacja prawidłowo obsługuje zapisywanie danych buforowanych na dyskach trwałych w razie potrzeby.

Readonly
Konfigurując buforowanie funkcji ReadOnly na dyskach danych Premium Storage, można uzyskać małe opóźnienie odczytu i uzyskać bardzo dużą ilość operacji we/wy odczytu i przepływności dla aplikacji. Jest to spowodowane dwoma przyczynami:

  1. Operacje odczytu wykonywane z pamięci podręcznej, która znajduje się na maszynie wirtualnej i lokalnym dysku SSD, są znacznie szybsze niż odczyty z dysku danych, który znajduje się w magazynie obiektów blob platformy Azure.
  2. 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. W związku z tym 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 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 opcja Brak jest obsługiwana tylko na dyskach danych. Nie jest obsługiwany na dyskach systemu operacyjnego. Jeśli ustawisz opcję Brak na dysku systemu operacyjnego, spowoduje to zastąpienie wewnętrznie i ustawienie go na ReadOnly.

Na przykład można zastosować te wytyczne do SQL Server uruchomionych na Premium Storage, wykonując następujące czynności:

  1. Skonfiguruj pamięć podręczną "ReadOnly" na dyskach magazynu w warstwie Premium hostujących pliki danych.
    a. Szybkie operacje odczytu z pamięci podręcznej obniżają czas zapytań SQL Server, ponieważ strony danych są pobierane znacznie szybciej z pamięci podręcznej w porównaniu z bezpośrednio z dyskami danych.
    b. Obsługa odczytów z pamięci podręcznej oznacza, że istnieje dodatkowa przepływność dostępna z dysków danych w warstwie Premium. SQL Server może użyć 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ą "Brak" na dyskach magazynu w warstwie Premium hostujących pliki dziennika.
    a. Pliki dziennika mają przede wszystkim operacje z dużą liczbą operacji zapisu. W związku z tym 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 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. Jeśli jednak buforowanie ma wartość 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:

  • W przypadku systemu plików reiserFS użyj opcji barrier=none mount, aby wyłączyć bariery. Aby jawnie włączyć bariery, użyj parametru barrier=flush.
  • W przypadku ext3/ext4 użyj opcji bariery =0, aby wyłączyć bariery. Aby jawnie włączyć bariery, użyj bariery =1.
  • W przypadku systemu plików 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 uruchomionej dystrybucji i wersji.

Rozkładanie dysku

Gdy maszyna wirtualna o dużej skali jest dołączona z kilkoma dyskami trwałymi magazynu w warstwie Premium, dyski mogą być rozłożone razem, aby agregować swoje operacje 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, ze względu na nierównomierny rozkład ruchu na dyskach.

Ważne: przy użyciu interfejsu użytkownika Menedżer serwera można ustawić łączną liczbę kolumn do 8 dla woluminu rozłożonego. W przypadku dołączania więcej niż ośmiu dysków użyj programu PowerShell, aby utworzyć wolumin. Przy użyciu programu PowerShell można ustawić liczbę kolumn równą liczbie dysków. Na przykład jeśli w jednym zestawie znajduje się 16 dysków; określ 16 kolumn w parametrze NumberOfColumns polecenia cmdlet new-VirtualDisk programu PowerShell.

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

Rozmiar woluminu rozłożonego
Ważną konfiguracją w rozkładaniu dysku jest rozmiar paska. Rozmiar paska lub rozmiar bloku jest najmniejszym fragmentem danych, które aplikacja może adresować 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, będzie konieczne wyszukiwanie w więcej niż jednej jednostki rozłożonej, 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 on losowy, żądania we/wy mogą się sumować na tym samym dysku, co powoduje wąskie gardło i ostatecznie obniżenie wydajności 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. Natomiast w przypadku dużych sekwencyjnych żądań we/wy użyj większego rozmiaru paska. Zapoznaj się z zaleceniami dotyczącymi rozmiaru paska dla aplikacji, którą będziesz uruchamiać na Premium Storage. W przypadku SQL Server skonfiguruj rozmiar paska o rozmiarze 64 KB dla obciążeń OLTP i 256 KB dla obciążeń magazynowania danych. Aby dowiedzieć się więcej, zobacz Performance best practices for SQL Server on Azure VMs (Najlepsze rozwiązania dotyczące wydajności dla maszyn wirtualnych platformy Azure).

Uwaga

Na maszynie wirtualnej z serii DS i 64 dyskach magazynu w warstwie Premium można rozebrać maksymalnie 32 dyski magazynu w warstwie Premium na maszynie wirtualnej z serii GS.

Wielowątkowa obsługa

Platforma Azure zaprojektowała platformę Premium Storage, która ma być bardzo równoległa. W związku z tym aplikacja wielowątkowa osiąga znacznie 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ść. Podczas oczekiwania na ukończenie operacji we/wy dysku jeden wątek 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 skraca czas działania, ponieważ każdy rdzeń może wykonywać zadania równolegle.

Zmiana sposobu implementacji pojedynczego wątku lub wielowątkowa aplikacji może nie być możliwe. Na przykład SQL Server może obsługiwać wiele procesorów i wiele rdzeni. Jednak SQL Server decyduje, w jakich warunkach będzie używać co najmniej jednego wątku do przetwarzania zapytania. Może uruchamiać zapytania i tworzyć indeksy przy użyciu wielowątkowania. W przypadku zapytania, które obejmuje łączenie dużych tabel i sortowanie danych przed powrotem do użytkownika, SQL Server prawdopodobnie będzie używać wielu wątków. Użytkownik nie może jednak kontrolować, czy SQL Server wykonuje zapytanie przy użyciu jednego wątku lub wielu wątków.

Istnieją ustawienia konfiguracji, które można zmienić, aby wpływać na ten wielowątkowy lub równoległe przetwarzanie aplikacji. Na przykład w przypadku SQL Server jest to maksymalna konfiguracja stopnia równoległości. To ustawienie o nazwie MAXDOP umożliwia skonfigurowanie maksymalnej liczby procesorów, SQL Server mogą być używane podczas przetwarzania równoległego. Ustawienie MAXDOP można skonfigurować dla poszczególnych zapytań lub operacji indeksowania. Jest to korzystne, gdy chcesz zrównoważyć zasoby systemu dla aplikacji o krytycznym znaczeniu dla wydajności.

Załóżmy na przykład, że aplikacja używająca SQL Server wykonuje duże zapytanie i operację indeksu w tym samym czasie. Załóżmy, że chcesz, aby operacja indeksu była 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 SQL Server ma więcej procesorów, których może użyć 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, SQL Server będą używane dla każdej operacji. Maksymalną liczbę procesorów przeznaczonych dla wielu wątków można kontrolować.

Dowiedz się więcej o stopniach równoległości w SQL Server. Dowiedz się, jakie ustawienia mają wpływ na wielowątkowy w aplikacji i ich konfiguracje w celu optymalizacji 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, które będą przetwarzane przez 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ątkowa obsługa są ściśle powiązane. Wartość Głębokość kolejki wskazuje, ile można osiągnąć przez aplikację. Jeśli głębokość kolejki jest duża, aplikacja może wykonywać więcej operacji jednocześnie, innymi słowy, bardziej wielowątkowa. Jeśli głębokość kolejki jest mała, mimo że aplikacja jest wielowątkowa, nie będzie miała wystarczającej liczby żądań w kolejce do współbieżnego wykonywania.

Zazwyczaj aplikacje gotowe nie pozwalają na zmianę głębokości kolejki, ponieważ w przypadku nieprawidłowego ustawienia spowoduje to większe szkody niż dobre. Aplikacje ustawią odpowiednią wartość głębokości kolejki, aby uzyskać optymalną wydajność. Należy jednak 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 (maksymalny stopień równoległości) w SQL Server wyjaśnione w poprzedniej sekcji. MAXDOP to sposób wpływania na głębokość kolejki i wielowątkowy, chociaż nie zmienia bezpośrednio wartości głębokości kolejki SQL Server.

Wysoka głębokość kolejki
Duża głębokość kolejki to więcej operacji na dysku. Dysk zna następne żądanie w kolejce z wyprzedzeniem. W związku z tym dysk może planować operacje z wyprzedzeniem i przetwarzać je w optymalnej sekwencji. Ponieważ aplikacja wysyła więcej żądań do dysku, dysk może przetwarzać więcej równoległych operacji we/wy. Ostatecznie aplikacja będzie mogła osiągnąć wyższy poziom liczby 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 maksymalną przepływnością wynoszącą od 8 do 16 i więcej zaległych operacji we/wy na dołączony dysk. Jeśli głębokość kolejki jest jedna, aplikacja nie wypycha wystarczającej liczby obiektów we/wy do systemu i będzie przetwarzać mniejszą ilość w danym okresie. Innymi słowy, mniejsza przepływność.

Na przykład w SQL Server ustawienie wartości MAXDOP dla zapytania na wartość "4" informuje SQL Server, że może użyć maksymalnie czterech rdzeni do wykonania zapytania. SQL Server określi najlepszą wartość głębokości kolejki i liczbę rdzeni dla wykonania 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 spróbuje użyć bardzo dużej liczby operacji we/wy na sekundę. Jeśli aplikacja nie ma dysków trwałych z wystarczającą aprowizowaną operacją we/wy na sekundę, może to 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.
Diagram przedstawiający równanie I O P S czas opóźnienia równa głębokość kolejki.

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ąco dużą 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ść kolejki 2 i cztery dyski na pasku. Dwa żądania we/wy zostaną przejdą do dwóch dysków, a pozostałe dwa dyski będą w stanie bezczynności. W związku z tym należy skonfigurować głębokość kolejki tak, aby wszystkie dyski mogły być zajęte. Poniższa formuła pokazuje, jak określić głębokość kolejki woluminów rozłożonych.
Diagram przedstawiający równanie Q D na dysk ile kolumn na wolumin równa Q D woluminu rozłożonego.

Ograniczanie przepływności

Usługa Azure 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 rozmiarów 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, Premium Storage ograniczy ją. To manifesty w postaci obniżonej wydajności w aplikacji. Może to oznaczać większe opóźnienie, niższą przepływność lub niższą wartość operacji we/wy na sekundę. Jeśli Premium Storage nie ogranicza przepustowości, aplikacja może całkowicie zakończyć się niepowodzeniem, przekraczając zasoby, które mogą osiągnąć. Aby uniknąć problemów z wydajnością spowodowanych ograniczaniem przepustowości, zawsze aprowizuj wystarczające zasoby dla aplikacji. Zapoznaj się z zagadnieniami omówionymi w powyższych sekcjach Rozmiary maszyn wirtualnych i Rozmiary dysków. Benchmarking to najlepszy sposób, aby dowiedzieć się, jakie zasoby będą potrzebne do hostowania aplikacji.

Następne kroki

Jeśli chcesz przeprowadzić test porównawczy dysku, zapoznaj się z naszymi artykułami na temat testów porównawczych dysku:

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

Aby uzyskać SQL Server użytkowników, przeczytaj artykuły dotyczące najlepszych rozwiązań dotyczących wydajności dla SQL Server: