Zbieranie punktów odniesienia: najlepsze rozwiązania dotyczące wydajności programu SQL Server na maszynie wirtualnej platformy Azure

Dotyczy:SQL Server na maszynie wirtualnej platformy Azure

Ten artykuł zawiera informacje dotyczące zbierania planu bazowego wydajności jako serii najlepszych rozwiązań i wytycznych dotyczących optymalizacji 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 w usłudze Azure Virtual Machines. 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ń.

Omówienie

W przypadku podejścia normatywnego zbierz liczniki wydajności przy użyciu narzędzia PerfMon/LogMan i przechwyć statystyki oczekiwania programu SQL Server, aby lepiej zrozumieć ogólne naciski i potencjalne wąskie gardła środowiska źródłowego.

Zacznij od zebrania procesora CPU, pamięci, liczby operacji we/wy na sekundę, przepływności i opóźnienia obciążenia źródłowego w godzinach szczytu po liście kontrolnej wydajności aplikacji.

Zbieraj dane w godzinach szczytu, takich jak obciążenia w typowym dniu roboczym, ale także inne procesy wysokiego obciążenia, takie jak przetwarzanie końcowe i weekendowe obciążenia ETL. Rozważ skalowanie zasobów w górę pod kątem nietypowych obciążeń, takich jak przetwarzanie końcowe kwartału, a następnie skalowanie wykonywane po zakończeniu obciążenia.

Użyj analizy wydajności, aby wybrać rozmiar maszyny wirtualnej, który może być skalowany do wymagań dotyczących wydajności obciążenia.

Storage

Wydajność programu SQL Server zależy w dużym stopniu od podsystemu we/wy, a wydajność magazynu jest mierzona przez operacje we/wy i przepływność. Jeśli baza danych nie pasuje do pamięci fizycznej, program SQL Server stale przenosi strony bazy danych do puli buforów i poza nie. Pliki danych programu SQL Server powinny być traktowane inaczej. Dostęp do plików dziennika jest sekwencyjny, z wyjątkiem sytuacji, gdy transakcja musi zostać wycofana, gdzie pliki danych, w tym tempdb, są losowo dostępne. Jeśli masz powolny podsystem we/wy, użytkownicy mogą napotkać problemy z wydajnością, takie jak wolne czasy odpowiedzi i zadania, które nie są wykonywane z powodu przekroczenia limitu czasu.

Maszyny wirtualne z witryny Azure Marketplace mają pliki dziennika na dysku fizycznym, który jest domyślnie oddzielony od plików danych. Liczba tempdb i rozmiar plików danych spełniają najlepsze rozwiązania i są przeznaczone dla dysku efemerycznego D:\ .

Następujące liczniki wydajności wydajności mogą pomóc zweryfikować przepływność operacji we/wy wymaganą przez program SQL Server:

  • \LogicalDisk\Disk Reads/Sec (odczyt operacji we/wy na sekundę)
  • \LogicalDisk\Disk Writes/Sec (zapis operacji we/wy na sekundę)
  • \LogicalDisk\Disk Read Bytes/Sec (wymagania dotyczące przepływności odczytu danych, dziennika i tempdb plików)
  • \LogicalDisk\Disk Write Bytes/Sec (wymagania dotyczące przepływności zapisu dla danych, dziennika i tempdb plików)

Korzystając z wymagań dotyczących liczby operacji we/wy na sekundę i przepływności na szczytowych poziomach, oceń rozmiary maszyn wirtualnych, które pasują do pojemności z pomiarów.

Jeśli obciążenie wymaga 20 000 operacji we/wy odczytu i 10 000 operacji we/wy zapisu na sekundę, możesz wybrać E16s_v3 (z maksymalnie 32K buforowanym i 25600 bez buforowanych operacji we/wy na sekundę) lub M16_s (z maksymalnie 20 000 buforowanych operacji we/wy na sekundę) z 2 dyskami P30 rozłożonymi przy użyciu funkcji Miejsca do magazynowania.

Pamiętaj, aby zrozumieć wymagania dotyczące przepływności i liczby operacji we/wy na sekundę obciążenia, ponieważ maszyny wirtualne mają różne limity skalowania dla liczby operacji we/wy na sekundę i przepływności.

Memory (Pamięć)

Śledź zarówno pamięć zewnętrzną używaną przez system operacyjny, jak i pamięć używaną wewnętrznie przez program SQL Server. Identyfikowanie ciśnienia dla dowolnego składnika pomoże w określeniu rozmiaru maszyn wirtualnych i zidentyfikowaniu możliwości dostrajania.

Następujące liczniki wydajności mogą pomóc w zweryfikowaniu kondycji pamięci maszyny wirtualnej z programem SQL Server:

Obliczenia

Obliczenia na platformie Azure są zarządzane inaczej niż lokalne. Serwery lokalne są tworzone w ciągu kilku lat bez uaktualnienia ze względu na nakład pracy związany z zarządzaniem i kosztem uzyskania nowego sprzętu. Wirtualizacja ogranicza niektóre z tych problemów, ale aplikacje są zoptymalizowane pod kątem największej korzyści ze sprzętu bazowego, co oznacza, że każda znacząca zmiana zużycia zasobów wymaga ponownego równoważenia całego środowiska fizycznego.

Nie jest to wyzwanie na platformie Azure, w którym nowa maszyna wirtualna w innej serii sprzętu, a nawet w innym regionie, jest łatwa do osiągnięcia.

Na platformie Azure chcesz korzystać z jak największej ilości zasobów maszyn wirtualnych, dlatego maszyny wirtualne platformy Azure powinny być skonfigurowane tak, aby były jak największe średnie użycie procesora CPU bez wpływu na obciążenie.

Następujące liczniki wydajności mogą pomóc w zweryfikowaniu kondycji obliczeniowej maszyny wirtualnej z programem SQL Server:

  • \Processor Information(_Total)% czas procesora
  • \Process(sqlservr)% czas procesora

Uwaga

W idealnym przypadku spróbuj użyć 80% zasobów obliczeniowych, a szczyty powyżej 90%, ale nie osiągną 100% w dowolnym trwałym okresie. Zasadniczo chcesz aprowizować obliczenia wymagane przez aplikację, a następnie zaplanować skalowanie w górę lub w dół zgodnie z wymaganiami biznesowymi.

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.

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.