Udostępnij za pośrednictwem


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

Dotyczy:program 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 zaleceniowego zbierz liczniki wydajności przy użyciu narzędzia PerfMon/LogMan i przechwyć statystyki oczekiwań programu SQL Server, aby lepiej zrozumieć ogólne naciski i potencjalne wąskie gardła środowiska źródłowego.

Zacznij od zebrania danych dotyczących CPU, pamięci, liczby operacji we/wy na sekundę, przepływności, i opóźnienia obciążenia źródłowego w godzinach szczytu zgodnie z listą kontrolną 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ż zwiększanie zasobów pod kątem nietypowych, dużych obciążeń, takich jak przetwarzanie na koniec kwartału, a następnie zmniejszenie zasobów 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.

Magazynowanie

Wydajność serwera SQL Server zależy w dużym stopniu od podsystemu we/wy, a wydajność magazynu jest mierzona przez IOPS i przepływność. Jeśli baza danych nie mieści się w pamięci fizycznej, program SQL Server ciągle wczytuje i zrzuca strony bazy danych do i z puli buforowej. 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 zostają ukończone 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 praktyki i mają być używane na efemerycznym dysku D:\.

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

  • \LogicalDisk\Disk Reads/Sec (odczyty operacji dyskowych na sekundę - IOPS)
  • \LogicalDisk\Disk Writes/Sec (liczba operacji zapisu 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 poziomach szczytowego obciążenia, oceń rozmiary VM, które odpowiadają pojemności z twoich 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 32 000 buforowanych i 25 600 niebuforowanych operacji we/wy na sekundę) lub M16_s (z maksymalnie 20 000 buforowanych i 10 000 niebuforowanych operacji we/wy na sekundę) z 2 dyskami P30 rozłożonymi przy użyciu Storage Spaces.

Upewnij się, że zrozumiesz wymagania dotyczące przepustowości i liczby operacji we/wy na sekundę obciążenia, bo maszyny wirtualne mają różne limity dla liczby operacji we/wy na sekundę i przepustowości.

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ą projektowane, aby działać przez kilka lat bez potrzeby modernizacji, co wynika z nakładu pracy wymaganego do zarządzania oraz kosztu 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.

Na platformie Azure nie stanowi to wyzwania, aby utworzyć nową maszynę wirtualną w innej serii sprzętu, a nawet w innym regionie.

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 średnie użycie procesora CPU było jak największe, bez wpływania na obciążenie.

Następujące liczniki PerfMon mogą pomóc w weryfikacji stanu wydajnościowego maszyny wirtualnej działającej z SQL Server:

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

Uwaga

W idealnym przypadku staraj się utrzymywać wykorzystanie zasobów obliczeniowych na poziomie 80%, z dopuszczalnymi szczytami powyżej 90%, ale unikaj przekraczania 100% przez dłuższy czas. Zasadniczo należy udostępniać moc obliczeniową wymaganą przez aplikację, a następnie planować skalowanie w górę lub w dół zgodnie z potrzebami 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 na temat maszyn wirtualnych SQL Server w sekcji Omówienie SQL Server na platformie Azure Virtual Machines. Jeśli masz pytania dotyczące maszyn wirtualnych programu SQL Server, zobacz Często zadawane pytania.