Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Rozwój maszyn wirtualnych platformy Azure do wykorzystania w programie SQL Server

Firma Microsoft oferuje wiele różnych serii i rozmiarów maszyn wirtualnych platformy Azure, jeśli chcesz używać ich opcji infrastruktury jako usługi (IaaS) do hostowania wystąpień programu SQL Server. Jedną początkową decyzją, którą musisz podjąć, jest seria i rozmiar maszyny wirtualnej platformy Azure, której chcesz użyć dla konkretnego obciążenia programu SQL Server.

W przypadku lokalnego użycia programu SQL Server należy przeprowadzić dokładną analizę obciążenia oraz dostępnych modeli serwerów i modeli procesorów, aby uzyskać serwer z odpowiednim wyborem procesora, aby zminimalizować koszty licencji programu SQL Server i uzyskać najlepszą wydajność oraz pojemność możliwa przy danym koszcie licencji SQL Server. Różnica kosztów i wydajności między dobrym wyborem procesora a złym wyborem procesora może być dość dramatyczna.

W przypadku maszyny wirtualnej platformy Azure musisz przeprowadzić podobną analizę, ale z nieco innych powodów. Koszt licencjonowania programu SQL Server na maszynie wirtualnej platformy Azure jest bezpośrednio związany z liczbą rdzeni w maszynie wirtualnej. Chcesz wybrać rozmiar maszyny wirtualnej, który odpowiada Twoim oczekiwanym potrzebom w zakresie wydajności i pojemności procesora, pojemności pamięci i wydajności pamięci masowej.

W przeciwieństwie do scenariusza lokalnego, będziesz mieć znacznie mniejszą kontrolę nad rzeczywistym wyborem procesora na podstawowej maszynie hosta. W przypadku maszyny wirtualnej platformy Azure wybierasz określoną serię maszyn (na przykład serię GS) i rozmiar w określonym centrum danych Azure, a następnie otrzymujesz dowolny procesor używany przez firmę Microsoft dla tej serii i rozmiaru w tym centrum danych Azure. Firma Microsoft ma obecnie 42 różne regiony, w których znajdują się centra danych Azure, więc możesz użyć macierzy pokazanej na tej stronie, aby dowiedzieć się, jakie serie maszyn wirtualnych są oferowane w każdym regionie.

Jednostka obliczeniowa platformy Azure (ACU)

Jedną z bardzo ważnych koncepcji, którą należy zrozumieć podczas porównywania i wybierania jednostki SKU maszyny wirtualnej platformy Azure, jest jednostka obliczeniowa platformy Azure (ACU), która umożliwia porównanie wydajności obliczeniowej (na rdzeń wydajności procesora wirtualnego) w różnych jednostkach SKU maszyn wirtualnych platformy Azure. Ten pomiar ACU jest obecnie standaryzowany na małej (Standard_A1) maszynie wirtualnej z wynikiem 100, a wszystkie inne jednostki SKU platformy Azure mają następnie wyniki ACU, które reprezentują w przybliżeniu, o ile szybciej ta konkretna jednostka SKU platformy Azure może uruchomić standardowy test porównawczy procesora. Na przykład Standard_A1 ma wynik ACU/vCPU równy 100, a Standard_GS5 ma wynik ACU/vCPU równy 240.

Spojrzenie na wynik ACU dla jednostki SKU maszyny wirtualnej platformy Azure daje przyzwoite pojęcie o wydajności jednowątkowego procesora procesora używanego na podstawowej maszynie hosta. Ważne jest również, aby zrozumieć, czy ten konkretny procesor obsługuje technologię Intel Turbo Boost i/lub Intel Hyper-Threading, ponieważ nie wszystkie procesory używane w różnych jednostkach SKU maszyn wirtualnych platformy Azure obsługują te technologie.

Możesz to zrobić, identyfikując rzeczywisty procesor hosta w maszynie wirtualnej na stronie Procesor karty Wydajność Menedżera zadań systemu Windows lub używając narzędzia takiego jak CPU-Z. Po zidentyfikowaniu dokładnego modelu procesora w hoście możesz skorzystać z internetowej bazy danych Intel ARK, aby uzyskać szczegółowe informacje na temat tego procesora.

Nowe rozmiary maszyn wirtualnych Azure dla SQL Server

Częstym problemem związanym z określaniem rozmiaru maszyny wirtualnej platformy Azure dla programu SQL Server był fakt, że często byłeś zmuszony wybrać rozmiar maszyny wirtualnej, która miała znacznie więcej rdzeni procesora wirtualnego niż potrzebujesz lub chciałeś, aby mieć wystarczającą wydajność pamięci i pamięci masowej do obsługi obciążenia, co zwiększyło miesięczny koszt licencji.

Na szczęście firma Microsoft niedawno nieco ułatwiła proces decyzyjny w przypadku SQL Server dzięki nowej serii maszyn wirtualnych platformy Azure, które korzystają z określonych rozmiarów maszyn wirtualnych (DS, ES, GS i MS), ale zmniejszają liczbę procesorów wirtualnych do jednej czwartej lub połowy oryginalnego rozmiaru maszyny wirtualnej, przy zachowaniu tej samej przepustowości pamięci, magazynu i operacji we/wy. Te nowe rozmiary maszyn wirtualnych mają przyrostek, który określa liczbę aktywnych procesorów wirtualnych, aby ułatwić ich identyfikację.

Na przykład maszyna wirtualna platformy Azure w standardzie Standard_DS14v2 miałaby 16 procesorów wirtualnych, 112 GB pamięci RAM i obsługiwałaby do 51 200 IOPS lub 768 MB/s przepustowości sekwencyjnej (według firmy Microsoft). Nowa maszyna wirtualna platformy Azure w standardzie Standard_DS14-8v2 miałaby tylko 8 procesorów wirtualnych o takiej samej pojemności pamięci i wydajności dysku jak w przypadku maszyny Standard_DS14v2, co obniżyłoby roczny koszt licencjonowania programu SQL Server o 50%. Obie te jednostki SKU maszyn wirtualnych platformy Azure miałyby ten sam wynik ACU wynoszący 160.

Jednym nieco mylącym problemem związanym z tymi nowymi jednostkami SKU maszyn wirtualnych platformy Azure jest to, że miesięczny koszt obliczeń (obejmujący licencjonowanie systemu operacyjnego) dla obu tych jednostek SKU będzie taki sam (w tym przykładzie 989,52 USD/miesiąc). Oszczędzasz dzięki obniżonym miesięcznym kosztom licencjonowania SQL Server.

Zasadniczo to, co Microsoft robi tutaj, to wyłączanie rdzeni w maszynie wirtualnej w celu zmniejszenia kosztów licencjonowania programu SQL Server, czego nie wolno robić w przypadku lokalnego programu SQL Server. W przypadku lokalnego programu SQL Server nie można wyłączać rdzeni procesora w systemie UEFI/BIOS w celu zmniejszenia kosztów licencji programu SQL Server. Nawet jeśli wyłączysz rdzenie w UEFI/BIOS, nadal musisz licencjonować te rdzenie dla SQL Server.

Porównanie Twojej maszyny wirtualnej Azure z CPU-Z

Jednym bardzo szybkim testem porównawczym procesora, który można uruchomić na dowolnej maszynie (fizycznej lub wirtualnej, maszynie wirtualnej platformy Azure lub nie), jest wbudowany test porównawczy CPU-Z, którego ukończenie zajmuje tylko około 20 sekund. Stworzyłem standardowy DS14-8_v2 w centrum danych w południowo-środkowych stanach USA. Ta maszyna wirtualna korzystała z procesora Intel Xeon E5-2673 v3 Haswell-EP, który jest 12-rdzeniowym procesorem o podstawowym taktowaniu 2,4 GHz i taktowaniu Turbo 3,2 GHz, który wydaje się być specjalnym SKU procesora na zamówienie, który nie znajduje się w bazie danych Intel Ark. Ta rodzina procesorów została wprowadzona w III kwartale 2014 roku, więc jest dostępna od ponad trzech lat. Na tej konkretnej maszynie wirtualnej nie zauważyłem, aby Turbo Boost było używane podczas moich testów.

Patrząc na rysunki od 1 do 3, można zobaczyć wyniki testu CPU-Z dla tej maszyny wirtualnej Azure, przy czym rysunek 4 przedstawia wyniki dla mojego, co prawda szybkiego laptopa Dell Precision 5520. Mój laptop ma taką samą liczbę wirtualnych rdzeni, jak standardowa DS14-8_v2 Azure VM, ale używam znacznie nowszego procesora Intel Xeon E3-1505M v6 Kaby Lake z wyższą podstawową częstotliwością zegara i lepszą wydajnością jednowątkową.

Rysunek 1:Menedżer zadań ze standardowego DS14-8_v2 w południowo-środkowych stanach USA

Rysunek 2:Karta CPU-Z CPU ze standardu DS14-8_v2 w południowo-środkowej części Stanów Zjednoczonych

Rysunek 3:Karta CPU-Z Bench ze standardu DS14-8_v2 w południowo-środkowej części Stanów Zjednoczonych

Rysunek 4:Zakładka CPU-Z Bench z laptopa Glenna


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć nazwę bieżącej stacji roboczej, która jest połączona z programem SQL Server (T-SQL)

  2. Jak zwrócić liczby losowe jako kolumnę w SQL Server 2005?

  3. Tworzenie nazw tabel będących zastrzeżonymi słowami/słowami kluczowymi w MS SQL Server

  4. Czy można używać wyszukiwania pełnotekstowego (FTS) z LINQ?

  5. Typ danych do przechowywania adresu IP w SQL Server