Magazyn: najlepsze rozwiązania dotyczące wydajności programu SQL Server na maszynach wirtualnych platformy Azure
Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure
Ten artykuł zawiera najlepsze rozwiązania i wskazówki dotyczące magazynu w celu zoptymalizowania wydajności programu SQL Server na maszynach wirtualnych platformy Azure.
Zazwyczaj istnieje kompromis między optymalizacją kosztów a optymalizacją pod kątem wydajności. Ta seria najlepszych rozwiązań dotyczących wydajności koncentruje się na uzyskaniu najlepszej wydajności dla programu SQL Server na maszynach wirtualnych platformy Azure. Jeśli obciążenie jest mniej wymagające, możesz nie wymagać każdej zalecanej optymalizacji. Podczas oceniania tych zaleceń należy wziąć pod uwagę wymagania dotyczące wydajności, kosztów i wzorców obciążeń.
Aby dowiedzieć się więcej, zobacz inne artykuły z tej serii: Lista kontrolna, Rozmiar maszyny wirtualnej, Zabezpieczenia, Konfiguracja usługi HADR i Zbieranie punktów odniesienia.
Lista kontrolna
Zapoznaj się z poniższą listą kontrolną, aby zapoznać się z krótkim omówieniem najlepszych rozwiązań dotyczących magazynu, które opisano w pozostałej części artykułu, bardziej szczegółowo:
- Monitoruj aplikację i określ wymagania dotyczące przepustowości i opóźnienia magazynu dla danych, dziennika i
tempdb
plików programu SQL Server przed wybraniem typu dysku. - Jeśli jest dostępna, skonfiguruj
tempdb
pliki danych i dziennika na woluminie D: lokalnego dysku SSD. Rozszerzenie agenta IaaS sql obsługuje folder i uprawnienia wymagane podczas ponownej aprowizacji. - Aby zoptymalizować wydajność magazynu, zaplanuj największą liczbę dostępnych operacji we/wy na sekundę bez buforowania i użyj buforowania danych jako funkcji wydajności dla odczytów danych, unikając ograniczania liczby maszyn wirtualnych i dysków.
- W przypadku korzystania z maszyn wirtualnych z serii Ebdsv5 lub Ebsv5 programu SQL Server użyj dysków SSD w warstwie Premium w wersji 2 , aby uzyskać najlepszą wydajność cenową. Maszynę wirtualną programu SQL Server można wdrożyć przy użyciu dysków SSD w warstwie Premium w wersji 2 przy użyciu witryny Azure Portal (obecnie w wersji zapoznawczej).
- Umieść dane, dzienniki i
tempdb
pliki na oddzielnych dyskach.- W przypadku dysku danych użyj dysków Premium P30 i P40 lub mniejszych , aby zapewnić dostępność obsługi pamięci podręcznej. W przypadku korzystania z serii maszyn wirtualnych Ebdsv5 użyj dysków SSD w warstwie Premium w wersji 2 , która zapewnia lepszą wydajność cenową dla obciążeń wymagających wysokiej przepływności operacji we/wy i operacji we/wy.
- Plan dysku dziennika dla wydajności i testowania wydajności i kosztów podczas oceny dysków SSD w warstwie Premium w wersji 2 lub Premium SSD P30 – P80
- Jeśli wymagane jest opóźnienie magazynu w milisekundach, użyj dysków SSD w warstwie Premium w wersji 2 lub Ultra platformy Azure dla dziennika transakcji.
- W przypadku wdrożeń maszyn wirtualnych serii M należy rozważyć użycie akceleratora zapisu za pomocą dysków w warstwie Ultra platformy Azure.
- Umieść bazę danych tempdb na dysku tymczasowym (dysk tymczasowy jest efemeryczny i domyślnie ma
D:\
wartość ) dla większości obciążeń programu SQL Server, które nie są częścią wystąpienia klastra trybu failover (FCI) po wybraniu optymalnego rozmiaru maszyny wirtualnej.- Jeśli pojemność dysku lokalnego nie jest wystarczająca dla
tempdb
programu , rozważ zmianę rozmiaru maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Zasady buforowania plików danych.
- Jeśli pojemność dysku lokalnego nie jest wystarczająca dla
- W przypadku wystąpień klastra trybu failover (FCI) umieść je
tempdb
w magazynie udostępnionym.- Jeśli obciążenie klastra trybu failover jest silnie zależne od
tempdb
wydajności dysku, to jako zaawansowane miejscetempdb
konfiguracji na lokalnym efemerycznym dysku SSD (domyślnyD:\
), który nie jest częścią magazynu wystąpienia klastra trybu failover. Ta konfiguracja wymaga niestandardowego monitorowania i akcji, aby upewnić się, że lokalny dysk SSD efemeryczny (domyślnyD:\
) jest dostępny przez cały czas, ponieważ wszystkie awarie tego dysku nie będą wyzwalać akcji z wystąpienia klastra trybu failover.
- Jeśli obciążenie klastra trybu failover jest silnie zależne od
- Usuń wiele dysków danych platformy Azure przy użyciu Miejsca do magazynowania, aby zwiększyć przepustowość operacji we/wy do limitu liczby operacji we/wy docelowej maszyny wirtualnej i limitów przepływności.
- Ustaw buforowanie hostów na tylko do odczytu dla dysków plików danych.
- Ustaw buforowanie hosta na wartość none dla dysków plików dziennika.
- Nie włączaj buforowania odczytu/zapisu na dyskach zawierających dane lub pliki dziennika programu SQL Server.
- Przed zmianą ustawień pamięci podręcznej dysku zawsze zatrzymaj usługę SQL Server.
- Podczas migracji kilku różnych obciążeń do chmury usługa Azure Elastic SAN może być opłacalnym rozwiązaniem magazynu skonsolidowanego. Jednak w przypadku korzystania z elastycznej sieci SAN platformy Azure osiągnięcie żądanej przepływności/liczby operacji we/wy na sekundę dla obciążeń programu SQL Server często wymaga nadmiernej aprowizacji pojemności. Chociaż nie jest to zwykle odpowiednie dla pojedynczych obciążeń programu SQL Server, można uzyskać ekonomiczne rozwiązanie podczas łączenia obciążeń o niskiej wydajności z programem SQL Server.
- W przypadku obciążeń programistycznych i testowych oraz długoterminowego archiwizowania kopii zapasowych należy rozważyć użycie magazynu standardowego. Nie zaleca się używania dysków HDD/SSD w warstwie Standardowa w przypadku obciążeń produkcyjnych.
- Skalowanie dysku opartego na kredytach (P1-P20) powinno być brane pod uwagę tylko w przypadku mniejszych obciążeń deweloperskich/testowych i systemów działów.
- Aby zoptymalizować wydajność magazynu, zaplanuj największą liczbę dostępnych operacji we/wy na sekundę bez buforowania i użyj buforowania danych jako funkcji wydajności dla odczytów danych, unikając jednocześnie ograniczania/ograniczania maszyn wirtualnych i dysków.
- Sformatuj dysk danych, aby użyć rozmiaru jednostki alokacji 64 KB dla wszystkich plików danych umieszczonych na dysku innym niż dysk tymczasowy
D:\
(który ma domyślnie 4 KB). Maszyny wirtualne programu SQL Server wdrożone za pośrednictwem witryny Azure Marketplace zawierają dyski danych sformatowane z rozmiarem jednostki alokacji i przeplatane dla puli magazynów ustawionej na 64 KB. - Skonfiguruj konto magazynu w tym samym regionie co maszyna wirtualna z programem SQL Server.
- Wyłącz magazyn geograficznie nadmiarowy platformy Azure (replikacja geograficzna) i użyj magazynu LRS (magazyn lokalnie nadmiarowy) na koncie magazynu.
- Włącz ocenę najlepszych rozwiązań SQL, aby zidentyfikować możliwe problemy z wydajnością i ocenić, czy maszyna wirtualna z programem SQL Server jest skonfigurowana do stosowania najlepszych rozwiązań.
- Przejrzyj i monitoruj limity dysków i maszyn wirtualnych przy użyciu metryk użycia operacji we/wy magazynu.
- Wyklucz pliki programu SQL Server ze skanowania oprogramowania antywirusowego, w tym pliki danych, pliki dziennika i pliki kopii zapasowej.
Aby porównać listę kontrolną magazynu z innymi najlepszymi rozwiązaniami, zobacz kompleksową listę kontrolną najlepszych rozwiązań dotyczących wydajności.
Omówienie
Aby znaleźć najbardziej efektywną konfigurację obciążeń programu SQL Server na maszynie wirtualnej platformy Azure, zacznij od zmierzenia wydajności magazynu aplikacji biznesowej. Gdy są znane wymagania dotyczące magazynu, wybierz maszynę wirtualną, która obsługuje wymaganą liczbę operacji we/wy na sekundę i przepływność z odpowiednim współczynnikiem pamięci do rdzeni wirtualnych.
Wybierz rozmiar maszyny wirtualnej z wystarczającą skalowalnością magazynu dla obciążenia i kombinacją dysków (zwykle w puli magazynów), które spełniają wymagania dotyczące pojemności i wydajności twojej firmy.
Typ dysku zależy od typu pliku hostowanego na dysku i szczytowych wymagań dotyczących wydajności.
Napiwek
Aprowizowanie maszyny wirtualnej z programem SQL Server za pośrednictwem witryny Azure Portal ułatwia zapoznanie się z procesem konfiguracji magazynu i implementowanie większości najlepszych rozwiązań dotyczących magazynu, takich jak tworzenie oddzielnych pul magazynów dla plików danych i dzienników, ukierunkowanie tempdb
na D:\
dysk i włączanie optymalnych zasad buforowania. Aby uzyskać więcej informacji na temat aprowizacji i konfigurowania magazynu, zobacz Konfiguracja magazynu maszyn wirtualnych SQL.
Typy dysków maszyny wirtualnej
Możesz wybrać poziom wydajności dla dysków. Typy dysków zarządzanych dostępnych jako magazyn podstawowy (wymieniony przez zwiększenie wydajności) to dyski twarde w warstwie Standardowa (HDD), dyski półprzewodnikowe w warstwie Standardowa (SSD), dyski SSD w warstwie Premium, dyski SSD w warstwie Premium w wersji 2 i dyski Ultra Disk.
W przypadku dysków HDD w warstwie Standardowa, dysków SSD w warstwie Standardowa i dysków SSD w warstwie Premium wydajność dysku zwiększa się wraz z rozmiarem dysku, pogrupowanym według etykiet dysków w warstwie Premium, takich jak P1 z 4 giB miejsca i 120 operacji we/wy na sekundę do P80 z 32 TiB magazynu i 20 000 operacji we/wy na sekundę. Usługa Premium Storage obsługuje pamięć podręczną magazynu, która pomaga zwiększyć wydajność odczytu i zapisu dla niektórych obciążeń. Aby uzyskać więcej informacji, zobacz Omówienie dysków zarządzanych.
Wydajność dysków SSD w warstwie Premium w wersji 2 i Ultra Można zmienić niezależnie od rozmiaru dysku. Aby uzyskać szczegółowe informacje, zobacz Wydajność dysków w warstwie Ultra i Wydajność dysków SSD w warstwie Premium w wersji 2.
Istnieją również trzy główne role dysku, które należy wziąć pod uwagę w przypadku programu SQL Server na maszynie wirtualnej platformy Azure — dysku systemu operacyjnego, dysku tymczasowego i dysków danych. Dokładnie wybierz zawartość przechowywaną na dysku (C:\)
systemu operacyjnego i efemeryczny dysk (D:\)
tymczasowy .
Dysk systemu operacyjnego
Dysk systemu operacyjnego to dysk VHD, który można uruchomić i zamontować jako uruchomioną wersję systemu operacyjnego i jest oznaczony jako C:\
dysk. Podczas tworzenia maszyny wirtualnej usługi Azure platforma dołącza co najmniej jeden dysk do maszyny wirtualnej jako dysk systemu operacyjnego. Dysk C:\
jest domyślną lokalizacją instalacji aplikacji i konfiguracji plików.
W przypadku produkcyjnych środowisk programu SQL Server nie używaj dysku systemu operacyjnego dla plików danych, plików dziennika, dzienników i dzienników błędów.
Dysk tymczasowy
Wiele maszyn wirtualnych platformy Azure zawiera inny typ dysku nazywany dyskiem D:\
tymczasowym (oznaczony jako dysk). W zależności od serii maszyn wirtualnych i rozmiaru pojemność tego dysku będzie się różnić. Dysk tymczasowy jest efemeryczny, co oznacza, że magazyn dyskowy jest ponownie utworzony (tak jak w przypadku cofnięcia przydziału i przydzielenia ponownie), po ponownym uruchomieniu maszyny wirtualnej lub przeniesiony do innego hosta (na przykład w celu naprawy usługi).
Dysk magazynu tymczasowego nie jest utrwalany w magazynie zdalnym i dlatego nie powinien przechowywać plików bazy danych użytkownika, plików dziennika transakcji ani żadnych elementów, które muszą zostać zachowane. Można go na przykład użyć dla rozszerzeń puli, pliku strony i tempdb
.
Umieść tempdb
na lokalnym tymczasowym dysku SSD D:\
dla obciążeń programu SQL Server, chyba że zużycie lokalnej pamięci podręcznej jest problemem. Jeśli używasz maszyny wirtualnej, która nie ma dysku tymczasowego, zaleca się umieszczenie tempdb
własnego izolowanego dysku lub puli magazynów z buforowaniem ustawionym na tylko do odczytu. Aby dowiedzieć się więcej, zobacz zasady buforowania danych bazy danych tempdb.
Dyski danych
Dyski danych to dyski magazynu zdalnego, które są często tworzone w pulach magazynów w celu przekroczenia pojemności i wydajności, którą każdy pojedynczy dysk może zaoferować maszynie wirtualnej.
Dołącz minimalną liczbę dysków, które spełniają wymagania dotyczące liczby operacji we/wy na sekundę, przepływności i pojemności obciążenia. Nie należy przekraczać maksymalnej liczby dysków danych najmniejszej maszyny wirtualnej, do której planujesz zmienić rozmiar.
Umieść pliki danych i dzienników na dyskach danych aprowizowania, aby spełnić wymagania dotyczące wydajności.
Sformatuj dysk danych, aby użyć rozmiaru jednostki alokacji 64 KB dla wszystkich plików danych umieszczonych na dysku innym niż dysk tymczasowy D:\
(który ma domyślnie 4 KB). Maszyny wirtualne programu SQL Server wdrożone za pośrednictwem witryny Azure Marketplace zawierają dyski danych sformatowane z rozmiarem jednostki alokacji i przeplatane dla puli magazynów ustawionej na 64 KB.
Uwaga
Istnieje również możliwość hostowania plików bazy danych programu SQL Server bezpośrednio w usłudze Azure Blob Storage lub w magazynie SMB, takim jak udział plików Azure Premium, ale zalecamy używanie dysków zarządzanych platformy Azure w celu uzyskania najlepszej wydajności, niezawodności i dostępności funkcji.
Premium SSD v2
Podczas uruchamiania obciążeń programu SQL Server w obsługiwanych regionach należy używać dysków SSD w wersji 2 w warstwie Premium, jeśli bieżące ograniczenia są odpowiednie dla danego środowiska. W zależności od konfiguracji dyski SSD w warstwie Premium w wersji 2 mogą być tańsze niż dyski SSD w warstwie Premium, a także zapewnić lepszą wydajność. Dzięki dyskom SSD w warstwie Premium w wersji 2 można indywidualnie dostosować przepływność lub liczbę operacji we/wy na sekundę niezależnie od rozmiaru dysku. Możliwość indywidualnego dostosowywania opcji wydajności pozwala na większe oszczędności kosztów i umożliwia wykonywanie skryptów zmian w celu spełnienia wymagań dotyczących wydajności w przewidywanych lub znanych okresach potrzeb.
Zalecamy używanie dysków SSD w warstwie Premium w wersji 2 w przypadku korzystania z serii maszyn wirtualnych Ebdsv5 lub Ebsv5, ponieważ jest to bardziej ekonomiczne rozwiązanie dla tych maszyn o wysokiej przepływności we/wy.
Maszyny wirtualne programu SQL Server można wdrożyć przy użyciu dysków SSD w warstwie Premium w wersji 2 przy użyciu witryny Azure Portal (obecnie w wersji zapoznawczej).
Jeśli wdrażasz maszynę wirtualną z programem SQL Server przy użyciu witryny Azure Portal i chcesz używać dysków SSD w warstwie Premium w wersji 2, obecnie masz ograniczenie do maszyn wirtualnych serii Ebdsv5 lub Ebsv5. Jeśli jednak ręcznie utworzysz maszynę wirtualną przy użyciu magazynu SSD w wersji 2 w warstwie Premium, a następnie ręcznie zainstalujesz program SQL Server na maszynie wirtualnej, możesz użyć dowolnej serii maszyn wirtualnych, która obsługuje dyski SSD w warstwie Premium w wersji 2. Pamiętaj, aby zarejestrować maszynę wirtualną programu SQL Server przy użyciu rozszerzenia agenta IaaS SQL, aby móc korzystać ze wszystkich korzyści oferowanych przez rozszerzenie.
Azure Elastic SAN
Azure Elastic SAN to oferta magazynu dołączonego do sieci, która zapewnia klientom elastyczne i skalowalne rozwiązanie z możliwością obniżenia kosztów dzięki konsolidacji magazynu. Usługa Azure Elastic SAN zapewnia ekonomiczne, wydajne i niezawodne rozwiązanie magazynu blokowego, które łączy się z różnymi usługami obliczeniowymi platformy Azure za pośrednictwem protokołu iSCSI. Elastyczna sieć SAN umożliwia bezproblemowe przejście z istniejącej jednostki magazynu SAN do chmury bez konieczności refaktoryzacji architektury aplikacji klienta.
To rozwiązanie umożliwia skalowanie w górę do milionów operacji we/wy na sekundę, dwucyfrowych GB/s przepływności oraz małych jednocyfrowych opóźnień w milisekundach z wbudowaną odpornością w celu zminimalizowania przestojów. Użyj elastycznej sieci SAN platformy Azure, jeśli chcesz skonsolidować magazyn, pracować z wieloma usługami obliczeniowymi lub mieć obciążenia wymagające wysokiego poziomu przepływności podczas przenoszenia magazynu przez przepustowość sieci. Jednak ponieważ osiągnięcie żądanej przepływności/liczby operacji we/wy na sekundę dla obciążeń programu SQL Server często wymaga nadmiernej aprowizacji, zwykle nie jest odpowiednie dla pojedynczych obciążeń programu SQL Server. Połączenie innych obciążeń o niskiej wydajności z programem SQL Server może być konieczne w celu uzyskania najbardziej ekonomicznego rozwiązania.
Podczas rozważania rozmiaru i wydajności maszyny wirtualnej dla usługi Azure Elastic SAN ważne jest, aby zrozumieć, że komunikacja magazynu odbywa się za pośrednictwem sieci. Na przykład rozmiar maszyny wirtualnej E4d_v5 nie obsługuje usługi Azure Premium Storage, ale dobrze współpracuje z usługą Azure Elastic SAN, ponieważ obsługuje do 12 500 MB/s przepływności sieci. W przypadku korzystania z elastycznej sieci SAN platformy Azure o tym rozmiarze maszyny wirtualnej należy upewnić się, że wymagania dotyczące przepływności sieci i magazynu dla obciążenia mieszczą się w limicie przepływności sieci 12 500 Mb/s.
Określ wymagania dotyczące sieci i magazynu przed wdrożeniem maszyny wirtualnej z programem SQL Server za pomocą elastycznej sieci SAN platformy Azure, a następnie uważnie monitoruj użycie sieci i magazynu, aby potwierdzić, że wybrana maszyna wirtualna może pomieścić obciążenie. Aby dowiedzieć się więcej, zapoznaj się z tematem Wydajność maszyny wirtualnej za pomocą elastycznych woluminów SIECI SAN i elastycznych metryk sieci SAN.
Uwaga
- Rozmiar maszyny wirtualnej z elastyczną siecią SAN musi spełniać wymagania dotyczące przepływności sieci produkcyjnej (maszyny wirtualnej do maszyny wirtualnej) oprócz przepływności magazynu. W przypadku korzystania z elastycznej sieci SAN rozmiary maszyn wirtualnych zoptymalizowane pod kątem przepływności operacji we/wy mogą nie być tak ekonomiczne, jak rozmiary maszyn wirtualnych zoptymalizowane pod kątem przepustowości sieci.
Rozważ umieszczenie obciążeń programu SQL Server w elastycznej sieci SAN, aby uzyskać lepszą wydajność kosztową, ponieważ:
- Konsolidacja magazynu i dynamiczne udostępnianie wydajności: zwykle w przypadku obciążeń programu SQL Server na maszynach wirtualnych platformy Azure magazyn dysków jest aprowizowany na podstawie pojemności i szczytowych wymagań dotyczących wydajności dla tej maszyny wirtualnej. Ta nadmierna aprowizowana wydajność jest dostępna w razie potrzeby, ale nie można udostępnić nieużywanej wydajności z obciążeniami na innych maszynach wirtualnych. Elastyczna sieć SAN, podobna do lokalnej sieci SAN, umożliwia konsolidację potrzeb magazynu wielu obciążeń SQL i innych niż SQL w celu uzyskania lepszej wydajności kosztowej, z możliwością dynamicznego współużytkowania aprowizowanej wydajności w woluminach aprowizowanych do tych różnych obciążeń na podstawie wymagań we/wy. Na przykład w regionie Wschodnie stany USA załóżmy, że masz 10 obciążeń, które wymagają 2-TiB pojemności i 10 000 operacji we/wy na sekundę, ale łącznie nie potrzebują więcej niż 60 000 operacji we/wy na sekundę w dowolnym momencie. Możesz skonfigurować elastyczną sieć SAN z 12 jednostkami podstawowymi (1 jednostka bazowa = 0,08 USD za GiB/miesiąc), która zapewni 12 TiB pojemności i wymagane 60 000 operacji we/wy na sekundę oraz 8 jednostek tylko do pojemności (1 jednostka tylko do pojemności = 0,06 USD za GiB/miesiąc), co zapewnia pozostałą pojemność 8 TiB po niższych kosztach. Ta optymalna konfiguracja magazynu zapewnia lepszą wydajność kosztową przy jednoczesnym zapewnieniu niezbędnej wydajności (10 000 operacji we/wy na sekundę) dla każdego z tych obciążeń. Aby uzyskać więcej informacji na temat jednostek aprowizacji elastycznych sieci SAN i jednostek aprowizujących tylko dla pojemności, zobacz Planowanie elastycznej sieci SAN platformy Azure i cennika, odwiedź stronę Azure Elastic SAN — cennik.
- Aby zwiększyć przepływność magazynu: w przypadku wdrożeń maszyn wirtualnych platformy Azure program SQL Server od czasu do czasu wymaga nadmiernej aprowizacji maszyny wirtualnej z powodu limitów przepływności dysku dla tej maszyny wirtualnej. Można tego uniknąć za pomocą elastycznej sieci SAN, ponieważ zwiększa przepływność magazynu przez przepustowość sieci obliczeniowej przy użyciu protokołu iSCSI. Na przykład maszyna wirtualna Standard_E32ds_v5 jest ograniczona do 51 200 operacji we/wy na sekundę i 865 MB/s dla przepływności dysku/magazynu, ale może osiągnąć maksymalnie 2000 MB/s przepływności sieci. Jeśli wymaganie dotyczące przepływności magazynu dla obciążenia jest większe niż 865 MB/s, nie trzeba uaktualniać maszyny wirtualnej do większej jednostki SKU, ponieważ może teraz obsługiwać maksymalnie 2000 MB/s przy użyciu elastycznej sieci SAN.
Dysk SSD w warstwie Premium
Użyj dysków SSD w warstwie Premium dla plików danych i dzienników dla produkcyjnych obciążeń programu SQL Server. Operacje we/wy na sekundę i przepustowość SSD w warstwie Premium różnią się w zależności od rozmiaru i typu dysku.
W przypadku obciążeń produkcyjnych użyj dysków P30 i/lub P40 dla plików danych programu SQL Server, aby zapewnić obsługę buforowania i używać P30 do P80 dla plików dziennika transakcji programu SQL Server. Aby uzyskać najlepszy całkowity koszt posiadania, zacznij od P30s (5000 operacji we/wy na sekundę/200 MB/s) dla plików danych i dzienników, a następnie wybierz tylko wyższe pojemności, gdy musisz kontrolować liczbę dysków maszyny wirtualnej. W przypadku tworzenia i testowania lub małych systemów można użyć rozmiarów mniejszych niż P30, ponieważ obsługują buforowanie, ale nie oferują one zarezerwowanych cen.
W przypadku obciążeń OLTP dopasuj docelową liczbę operacji we/wy na sekundę na dysk (lub pulę magazynów) z wymaganiami dotyczącymi wydajności przy użyciu obciążeń w godzinach szczytu i Disk Reads/sec
+ Disk Writes/sec
liczników wydajności. W przypadku obciążeń magazynu danych i raportowania dopasuj docelową przepływność przy użyciu obciążeń w godzinach szczytu Disk Read Bytes/sec
+ Disk Write Bytes/sec
i .
Użyj Miejsca do magazynowania, aby uzyskać optymalną wydajność, skonfigurować dwie pule, jedną dla plików dziennika i drugą dla plików danych. Jeśli nie używasz usuwania dysków, użyj dwóch dysków SSD w warstwie Premium zamapowanych na oddzielne dyski, na których jeden dysk zawiera plik dziennika, a drugi zawiera dane.
Aprowizowana liczba operacji we/wy na sekundę i przepływność na dysk używany w ramach puli magazynów. Łączna liczba operacji we/wy na sekundę i przepływność dysków to maksymalna możliwość do limitów przepływności maszyny wirtualnej.
Najlepszym rozwiązaniem jest użycie najmniejszej liczby możliwych dysków przy jednoczesnym spełnieniu minimalnych wymagań dotyczących liczby operacji we/wy na sekundę (i przepływności) i pojemności. Jednak równowaga cen i wydajności zwykle jest lepsza z dużą liczbą małych dysków, a nie małą liczbą dużych dysków.
Skalowanie dysków w warstwie Premium
Rozmiar dysku SSD w warstwie Premium określa początkową warstwę wydajności dysku. Wyznaczyć warstwę wydajności podczas wdrażania lub zmienić ją później bez zmiany rozmiaru dysku. Jeśli zapotrzebowanie wzrośnie, możesz zwiększyć poziom wydajności, aby zaspokoić potrzeby biznesowe.
Zmiana warstwy wydajności umożliwia administratorom przygotowanie się i spełnienie wyższego zapotrzebowania bez konieczności polegania na zwiększaniu szybkości dysku.
Używaj wyższej wydajności tak długo, jak to konieczne, jeśli rozliczenia są przeznaczone do spełnienia warstwy wydajności magazynu. Uaktualnij warstwę, aby dopasować wymagania dotyczące wydajności bez zwiększania pojemności. Wróć do oryginalnej warstwy, gdy dodatkowa wydajność nie jest już wymagana.
Ta opłacalna i tymczasowa ekspansja wydajności jest silnym przypadkiem użycia dla docelowych zdarzeń, takich jak zakupy, testowanie wydajności, zdarzenia szkoleniowe i inne krótkie okna, w których większa wydajność jest potrzebna tylko w krótkim okresie.
Aby uzyskać więcej informacji, zobacz Warstwy wydajności dla dysków zarządzanych.
Dysk w warstwie Ultra platformy Azure
Jeśli istnieje potrzeba czasu odpowiedzi w milisekundach z mniejszym opóźnieniem, rozważ użycie dysku w warstwie Ultra platformy Azure dla dysku dziennika programu SQL Server, a nawet dysku danych dla aplikacji, które są bardzo wrażliwe na opóźnienia we/wy.
Dysk w warstwie Ultra można skonfigurować, gdzie pojemność i liczba operacji we/wy na sekundę można skalować niezależnie. Administratorzy dysków w warstwie Ultra mogą aprowizować dysk z wymaganiami dotyczącymi pojemności, liczby operacji we/wy na sekundę i przepływności w zależności od potrzeb aplikacji.
Dysk w warstwie Ultra nie jest obsługiwany we wszystkich seriach maszyn wirtualnych i ma inne ograniczenia, takie jak dostępność regionów, nadmiarowość i obsługa usługi Azure Backup. Aby dowiedzieć się więcej, zobacz Using Azure ultra disks (Korzystanie z dysków w warstwie Ultra platformy Azure), aby uzyskać pełną listę ograniczeń.
Dyski HDD w warstwie Standardowa i dyski SSD
Dyski HDD w warstwie Standardowa i dyski SSD mają różne opóźnienia i przepustowość i są zalecane tylko w przypadku obciążeń tworzenia i testowania. Obciążenia produkcyjne powinny używać dysków SSD w warstwie Premium w wersji 2 lub Premium. Jeśli używasz dysków SSD w warstwie Standardowa (scenariusze tworzenia i testowania), zaleca się dodanie maksymalnej liczby dysków danych obsługiwanych przez rozmiar maszyny wirtualnej i użycie usuwania dysków z Miejsca do magazynowania w celu uzyskania najlepszej wydajności.
Buforowanie
Maszyny wirtualne, które obsługują buforowanie magazynu w warstwie Premium, mogą korzystać z dodatkowej funkcji nazywanej usługą Azure BlobCache lub buforowaniem hosta w celu rozszerzenia możliwości operacji we/wy na sekundę i przepływności maszyny wirtualnej. Maszyny wirtualne włączone zarówno dla magazynu w warstwie Premium, jak i pamięci podręcznej magazynu w warstwie Premium mają te dwa różne limity przepustowości magazynu, których można używać razem w celu zwiększenia wydajności magazynu.
Przepływność operacji we/wy na sekundę i mb/s bez buforowania jest liczona względem limitów przepływności dysku bez buforowania maszyny wirtualnej. Maksymalne buforowane limity zapewniają kolejny bufor dla operacji odczytu, który pomaga sprostać wzrostowi i nieoczekiwanym szczytom.
Włącz buforowanie w warstwie Premium za każdym razem, gdy opcja jest obsługiwana w celu znacznego zwiększenia wydajności operacji odczytu na dysku danych bez dodatkowych kosztów.
Operacje odczytu i zapisu w usłudze Azure BlobCache (buforowane operacje we/wy na sekundę i przepływność) nie są liczone względem niebuforowanych operacji we/wy na sekundę i limitów przepływności maszyny wirtualnej.
Uwaga
Buforowanie dysków nie jest obsługiwane w przypadku dysków 4 TiB i większych (P50 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. Aby uzyskać więcej informacji, zobacz Buforowanie dysku.
Przepływność bez pamięci podręcznej
Maksymalna liczba operacji we/wy na sekundę dysku bez buforowania i przepływność to maksymalny limit magazynu zdalnego obsługiwany przez maszynę wirtualną. Ten limit jest definiowany na maszynie wirtualnej i nie jest limitem bazowego magazynu dyskowego. Ten limit dotyczy tylko operacji we/wy względem dysków danych podłączonych zdalnie do maszyny wirtualnej, a nie lokalnego we/wy względem dysku tymczasowego (D:\
dysku) lub dysku systemu operacyjnego.
Ilość niebuforowanej liczby operacji we/wy na sekundę i przepływności dostępnej dla maszyny wirtualnej można zweryfikować w dokumentacji maszyny wirtualnej.
Na przykład w dokumentacji serii M pokazano, że maksymalna przepływność bez buforowania dla maszyny wirtualnej Standard_M8ms wynosi 5000 operacji we/wy na sekundę i 125 MB/s przepływności dysku bez buforowania.
Podobnie widać, że Standard_M32ts obsługuje 20 000 niebuforowanych operacji we/wy na sekundę dysku i 500 MB/s przepływności dysku bez buforowania. Ten limit jest regulowany na poziomie maszyny wirtualnej niezależnie od bazowego magazynu dysków w warstwie Premium.
Aby uzyskać więcej informacji, zobacz Limity niebuforowane i buforowane.
Przepływność magazynu buforowanego i tymczasowego
Maksymalny limit przepływności pamięci podręcznej i tymczasowej magazynu to oddzielny limit od limitu przepływności niebuforowanej na maszynie wirtualnej. Usługa Azure BlobCache składa się z kombinacji pamięci losowego dostępu hosta maszyny wirtualnej i lokalnie dołączonego dysku SSD. Dysk tymczasowy (D:\
dysk) na maszynie wirtualnej jest również hostowany na tym lokalnym dysku SSD.
Maksymalny limit przepływności pamięci podręcznej i magazynu tymczasowego określa operacje we/wy względem lokalnego dysku tymczasowego (D:\
dysku) i usługi Azure BlobCache tylko wtedy, gdy buforowanie hostów jest włączone.
W przypadku włączenia buforowania w magazynie w warstwie Premium maszyny wirtualne mogą być skalowane poza ograniczenia limitów liczby operacji we/wy na sekundę maszyn wirtualnych bez buforowania magazynu zdalnego i limitów przepływności.
Tylko niektóre maszyny wirtualne obsługują buforowanie magazynu w warstwie Premium i Magazynu w warstwie Premium (które należy zweryfikować w dokumentacji maszyny wirtualnej). Na przykład dokumentacja serii M wskazuje, że zarówno magazyn Premium, jak i buforowanie magazynu w warstwie Premium są obsługiwane:
Limity pamięci podręcznej różnią się w zależności od rozmiaru maszyny wirtualnej. Na przykład maszyna wirtualna Standard_M8ms obsługuje 10000 buforowanych operacji we/wy na sekundę dysku i 1000 MB/s w pamięci podręcznej z łącznym rozmiarem pamięci podręcznej 793 GiB. Podobnie maszyna wirtualna Standard_M32ts obsługuje 40000 buforowanych operacji we/wy na sekundę dysku i 400 MB/s w pamięci podręcznej z łącznym rozmiarem pamięci podręcznej wynoszącym 3174 GiB.
Możesz ręcznie włączyć buforowanie hostów na istniejącej maszynie wirtualnej. Zatrzymaj wszystkie obciążenia aplikacji i usługi programu SQL Server przed wprowadzeniem jakichkolwiek zmian w zasadach buforowania maszyny wirtualnej. Zmiana dowolnego ustawienia pamięci podręcznej maszyny wirtualnej powoduje odłączenie dysku docelowego i ponowne ich dołączanie po zastosowaniu ustawień.
Zasady buforowania plików danych
Zasady buforowania magazynu różnią się w zależności od typu plików danych programu SQL Server hostowanych na dysku.
Poniższa tabela zawiera podsumowanie zalecanych zasad buforowania na podstawie typu danych programu SQL Server:
Dysk programu SQL Server | Zalecenie |
---|---|
Dysk danych | Włącz Read-only buforowanie dla dysków hostujących pliki danych programu SQL Server.Odczyty z pamięci podręcznej będą szybsze niż odczyty niebuforowane z dysku danych. Liczba operacji we/wy na sekundę i przepływność bez buforowania oraz liczba operacji we/wy na sekundę i przepływność w pamięci podręcznej dają łączną możliwą wydajność dostępną z maszyny wirtualnej w ramach limitów maszyn wirtualnych, ale rzeczywista wydajność różni się w zależności od możliwości użycia pamięci podręcznej (współczynnik trafień pamięci podręcznej). |
Dysk dziennika transakcji | Ustaw zasady buforowania na None dla dysków hostujących dziennik transakcji. Nie ma korzyści z wydajności, aby umożliwić buforowanie dysku dziennika transakcji, a w rzeczywistości Read-only włączenie buforowania na Read/Write dysku dziennika może obniżyć wydajność zapisów na dysku i zmniejszyć ilość pamięci podręcznej dostępnej dla odczytów na dysku danych. |
Dysk systemu operacyjnego | Domyślne zasady buforowania dotyczy Read/write dysku systemu operacyjnego.Nie zaleca się zmiany poziomu buforowania dysku systemu operacyjnego. |
tempdb |
Jeśli tempdb nie można umieścić na dysku D:\ efemerycznym ze względu na pojemność, zmień rozmiar maszyny wirtualnej, aby uzyskać większy efemeryczny dysk lub umieścić tempdb na oddzielnym dysku danych ze Read-only skonfigurowanym buforowaniem.Zarówno pamięć podręczna maszyny wirtualnej, jak i dysk efemeryczny używają lokalnego dysku SSD, dlatego należy pamiętać, że podczas określania rozmiaru tempdb operacji we/wy będzie liczone względem buforowanych operacji we/wy i limitów przepływności maszyn wirtualnych hostowanych na dysku efemerycznym. |
Ważne
Zmienianie ustawień pamięci podręcznej dysku platformy Azure powoduje odłączenie i ponowne dołączenie dysku docelowego. Podczas zmiany ustawienia pamięci podręcznej dla dysku, który hostuje dane, dziennik lub pliki aplikacji programu SQL Server, pamiętaj, aby zatrzymać usługę PROGRAMU SQL Server wraz z innymi powiązanymi usługami, aby uniknąć uszkodzenia danych.
Aby dowiedzieć się więcej, zobacz Buforowanie dysków.
Rozbieranie dysku
Przeanalizuj przepływność i przepustowość wymaganą dla plików danych SQL, aby określić liczbę dysków danych, w tym plik dziennika i tempdb
. Limity przepływności i przepustowości różnią się w zależności od rozmiaru maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych.
Dodaj więcej dysków danych i użyj usuwania dysków, aby uzyskać większą przepływność. Na przykład aplikacja, która potrzebuje 12 000 operacji we/wy na sekundę i przepływności 180 MB/s, może użyć trzech dysków P30 rozłożonych, aby zapewnić 15 000 operacji we/wy na sekundę i przepływność 600 MB/s.
Aby skonfigurować rozkładanie dysku, zobacz usuwanie dysków.
Ograniczenie dysku
Istnieją limity przepływności zarówno na poziomie dysku, jak i maszyny wirtualnej. Maksymalne limity liczby operacji we/wy na sekundę na maszynę wirtualną i na dysk różnią się i są niezależne od siebie.
Aplikacje, które zużywają zasoby wykraczające poza te limity, zostaną ograniczone (znane również jako ograniczone). Wybierz maszynę wirtualną i rozmiar dysku na pasku dysku, który spełnia wymagania aplikacji i nie będzie mieć ograniczeń. Aby rozwiązać problem z ograniczeniem, użyj buforowania lub dostosuj aplikację tak, aby wymagana jest mniejsza przepływność.
Na przykład aplikacja, która potrzebuje 12 000 operacji we/wy na sekundę i 180 MB/s, może:
- Użyj Standard_M32ms, która ma maksymalną przepływność dysku bez buforowania wynoszącą 20 000 operacji we/wy na sekundę i 500 MB/s.
- Usuń trzy dyski P30, aby zapewnić 15 000 operacji we/wy na sekundę i przepływność 600 MB/s.
- Użyj maszyny wirtualnej Standard_M16ms i użyj buforowania hosta, aby korzystać z lokalnej pamięci podręcznej w przypadku korzystania z przepływności.
Maszyny wirtualne skonfigurowane do skalowania w górę w czasie wysokiego wykorzystania powinny aprowizować magazyn z wystarczającą liczbą operacji we/wy na sekundę i przepływnością, aby obsługiwać maksymalny rozmiar maszyny wirtualnej, zachowując jednocześnie ogólną liczbę dysków mniejszą lub równą maksymalnej liczbie obsługiwanej przez najmniejszą jednostkę SKU maszyny wirtualnej, która ma być używana.
Aby uzyskać więcej informacji na temat ograniczeń ograniczania dysków i używania buforowania w celu uniknięcia ograniczenia, zobacz Ograniczanie operacji we/wy dysku.
Uwaga
Niektóre ograniczenia dysku mogą nadal skutkować zadowalającą wydajnością dla użytkowników; dostrajanie i konserwowanie obciążeń, a nie zmienianie rozmiaru na większą maszynę wirtualną w celu zrównoważenia zarządzania kosztami i wydajnością dla firmy.
Przyspieszanie zapisu
Przyspieszanie zapisu to funkcja dysku dostępna tylko dla maszyn wirtualnych serii M. Celem przyspieszania zapisu jest zwiększenie opóźnienia operacji we/wy zapisu w usłudze Azure Premium Storage, gdy potrzebne jest jednocyfrowe opóźnienie we/wy ze względu na duże obciążenia OLTP o krytycznym znaczeniu woluminu lub środowiska magazynu danych.
Użyj przyspieszania zapisu, aby zwiększyć opóźnienie zapisu na dysku obsługującym pliki dziennika. Nie używaj przyspieszania zapisu dla plików danych programu SQL Server.
Dyski akceleratora zapisu mają ten sam limit liczby operacji we/wy na sekundę co maszyna wirtualna. Dołączone dyski nie mogą przekraczać limitu liczby operacji we/wy na sekundę akceleratora zapisu dla maszyny wirtualnej.
W poniższej tabeli przedstawiono liczbę dysków danych i liczby operacji we/wy na sekundę obsługiwanych na maszynę wirtualną:
Jednostka SKU maszyny wirtualnej | # Dyski akceleratora zapisu | Operacje we/wy zapisu na sekundę dysku akceleratora na maszynę wirtualną |
---|---|---|
M416ms_v2, M416s_v2 | 16 | 20000 |
M128ms, M128s | 16 | 20000 |
M208ms_v2, M208s_v2 | 8 | 10 000 |
M64ms, M64ls, M64s | 8 | 10 000 |
M32ms, M32ls, M32ts, M32s | 100 | 5000 |
M16ms, M16s | 2 | 2500 |
M8ms, M8s | 1 | 1250 |
Istnieje kilka ograniczeń dotyczących używania przyspieszania zapisu. Aby dowiedzieć się więcej, zobacz Ograniczenia dotyczące korzystania z akceleratora zapisu.
Porównanie z dyskiem w warstwie Ultra platformy Azure
Największą różnicą między przyspieszeniem zapisu a dyskami w warstwie Ultra platformy Azure jest to, że przyspieszanie zapisu jest funkcją maszyny wirtualnej dostępną tylko dla dysków M-Series i Azure w warstwie Ultra jest opcja magazynu. Przyspieszanie zapisu to pamięć podręczna zoptymalizowana pod kątem zapisu z własnymi ograniczeniami na podstawie rozmiaru maszyny wirtualnej. Dyski w warstwie Ultra platformy Azure to opcja magazynu dysków o małych opóźnieniach dla maszyn wirtualnych platformy Azure.
Jeśli to możliwe, użyj przyspieszania zapisu na dyskach w warstwie Ultra dla dysku dziennika transakcji. W przypadku maszyn wirtualnych, które nie obsługują przyspieszania zapisu, ale wymagają małego opóźnienia w dzienniku transakcji, użyj dysków w warstwie Ultra platformy Azure.
Monitorowanie wydajności magazynu
Aby ocenić potrzeby magazynu i określić, jak dobrze działa magazyn, musisz zrozumieć, co należy zmierzyć i jakie wskaźniki oznaczają.
Liczba operacji we/wy na sekundę (dane wejściowe/wyjściowe) to liczba żądań wysyłanych przez aplikację do magazynu na sekundę. Mierzenie liczby operacji we/wy na sekundę przy użyciu liczników Disk Reads/sec
monitor wydajności i Disk Writes/sec
. Aplikacje OLTP (przetwarzanie transakcji online) muszą zwiększyć liczbę operacji we/wy na sekundę, aby osiągnąć optymalną wydajność. Aplikacje takie jak systemy przetwarzania płatności, zakupy online i systemy sprzedaży detalicznej to przykłady aplikacji OLTP.
Przepływność to ilość danych wysyłanych do bazowego magazynu, często mierzona według megabajtów na sekundę. Mierzenie przepływności za pomocą liczników Disk Read Bytes/sec
monitor wydajności i Disk Write Bytes/sec
. Magazynowanie danych jest zoptymalizowane pod kątem maksymalizacji przepływności w przypadku liczby operacji we/wy na sekundę. Aplikacje takie jak magazyny danych do analizy, raportowania, strumieni roboczych ETL i inne cele analizy biznesowej to przykłady aplikacji do magazynowania danych.
Rozmiary jednostek we/wy wpływają na możliwości operacji we/wy na sekundę i przepływności, ponieważ mniejsze rozmiary operacji we/wy dają większą przepływność, a większe rozmiary operacji we/wy dają większą przepływność. Program SQL Server automatycznie wybiera optymalny rozmiar operacji we/wy. Aby uzyskać więcej informacji, zobacz Optymalizowanie liczby operacji we/wy na sekundę, przepływności i opóźnień dla aplikacji.
Istnieją konkretne metryki usługi Azure Monitor, które są nieocenione do odnajdywania limitów na poziomie maszyny wirtualnej i dysku, a także zużycie i kondycję pamięci podręcznej AzureBlob. Aby zidentyfikować kluczowe liczniki do dodania do rozwiązania do monitorowania i pulpitu nawigacyjnego witryny Azure Portal, zobacz Metryki użycia magazynu.
Uwaga
Usługa Azure Monitor obecnie nie oferuje metryk na poziomie dysku dla efemerycznego dysku (D:\)
tymczasowego . Procent użycia pamięci podręcznej operacji we/wy na sekundę maszyny wirtualnej oraz procent użycia przepustowości pamięci podręcznej maszyny wirtualnej odzwierciedlają operacje we/wy na sekundę i przepływność zarówno z efemerycznego dysku (D:\)
tymczasowego, jak i buforowania hosta.
Monitorowanie wzrostu dziennika transakcji
Ponieważ pełny dziennik transakcji może prowadzić do problemów z wydajnością i awarii, ważne jest, aby monitorować dostępne miejsce w dzienniku transakcji, a także używane miejsce na dysku, który przechowuje dziennik transakcji. Rozwiąż problemy z dziennikami transakcji przed ich wpływem na obciążenie.
Zapoznaj się z artykułem Rozwiązywanie problemów z pełnym dziennikiem transakcji, jeśli dziennik stanie się pełny.
Jeśli musisz rozszerzyć dysk, możesz to zrobić w okienku Magazyn zasobu maszyn wirtualnych SQL, jeśli wdrożono obraz programu SQL Server z witryny Azure Marketplace lub w okienku Dyski dla maszyny wirtualnej platformy Azure i samodzielnie zainstalowanego programu SQL Server.
Następne kroki
Aby dowiedzieć się więcej, zobacz inne artykuły z tej serii najlepszych rozwiązań:
Aby uzyskać najlepsze rozwiązania w zakresie zabezpieczeń, zobacz Zagadnienia dotyczące zabezpieczeń programu SQL Server w usłudze Azure Virtual Machines.
Aby uzyskać szczegółowe informacje na temat testowania wydajności programu SQL Server na maszynach wirtualnych platformy Azure z testami porównawczymi TPC-E i TPC_C, zapoznaj się z blogiem Optymalizowanie wydajności OLTP.
Zapoznaj się z innymi artykułami maszyny wirtualnej programu SQL Server w artykule SQL Server on Azure Virtual Machines Overview (Omówienie programu SQL Server w usłudze Azure Virtual Machines). Jeśli masz pytania dotyczące maszyn wirtualnych programu SQL Server, zobacz Często zadawane pytania.