Database
 sql >> Baza danych >  >> RDS >> Database

Porównanie wydajności maszyny wirtualnej Windows Azure, część 1

Jeśli nie podejmujesz wspólnych wysiłków, aby to zignorować, być może słyszałeś, że Microsoft naprawdę chcesz przenieść znaczną część infrastruktury bazy danych SQL Server do centrum danych Microsoft, niezależnie od tego, czy korzystasz z bazy danych Azure SQL (o której ostatnio tutaj omawiałem), czy też hostujesz ją na wirtualnej maszynie Windows Azure. Microsoft nazywa te trwałe maszyny wirtualne instancjami obliczeniowymi , i mają do wyboru dwie główne warstwy, w tym podstawową warstwę obliczeniową i standardową warstwę obliczeniową. Opisują te dwa poziomy jako:

Podstawowy poziom obliczeniowy :ta nowa warstwa wystąpień obliczeniowych jest podobna w konfiguracji do warstwy Standardowa z niższymi cenami. Te instancje nie obejmują systemu równoważenia obciążenia i automatycznego skalowania. Doskonale nadają się do jednoinstancyjnych aplikacji produkcyjnych, obciążeń programistycznych, serwerów testowych i aplikacji przetwarzania wsadowego, które mogą nie wymagać tych funkcji. Podstawowa warstwa obliczeniowa jest obecnie dostępna tylko dla wystąpień ogólnego przeznaczenia. Te instancje wahają się od Basic A0 do Basic A4.

Standardowa warstwa obliczeniowa :ta warstwa instancji obliczeniowych zapewnia optymalny zestaw zasobów obliczeniowych, pamięci i we/wy do uruchamiania szerokiej gamy aplikacji. Te wystąpienia obejmują funkcje automatycznego skalowania i równoważenia obciążenia bez dodatkowych kosztów. Standardowa warstwa obliczeniowa jest dostępna w instancjach Ogólnego przeznaczenia, Intensywnej pamięci i Intensywnych obliczeniach. Te instancje mają zakres od Standard A0 do Standard A7.

Hostowanie infrastruktury programu SQL Server na maszynie wirtualnej platformy Windows Azure ma kilka ważnych zalet. Po pierwsze, nie ponosisz kosztów kapitałowych związanych z pamięcią masową ani sprzętem, a także nie masz bieżącej konserwacji pamięci ani sprzętu. Po drugie, nie masz żadnych kosztów licencji systemu operacyjnego ani programu SQL Server (gdy używasz obrazu SQL ze standardowej galerii maszyn wirtualnych platformy Azure). Po trzecie, w ciągu kilku minut można utworzyć nową maszynę wirtualną platformy Azure, na której jest już zainstalowany program SQL Server (nawet jeśli całkowite skonfigurowanie systemu operacyjnego i wystąpienia programu SQL Server zgodnie z dokładnymi wymaganiami może potrwać nieco dłużej). W przyszłości zainstalowanie aktualizacji systemu Windows i SQL Server nadal będzie zależeć od Ciebie, ale nie będziesz musiał się martwić takimi rzeczami, jak aktualizacje oprogramowania układowego, BIOS-u czy sterowników.

Jeśli chcesz używać maszyn wirtualnych platformy Windows Azure do hostowania całej lub części infrastruktury programu SQL Server, należy zapoznać się z aktualnymi szczegółami cenowymi dostępnymi dla konkretnego centrum danych platformy Azure, w którym chcesz hostować swoje maszyny wirtualne, ponieważ ceny mogą różnią się w różnych centrach danych Microsoft. Firma Microsoft ma obecnie 13 różnych rozmiarów maszyn wirtualnych Windows Azure, jak szczegółowo opisano na ich stronie Rozmiary maszyn wirtualnych i usług w chmurze dla platformy Azure. Firma Microsoft obniżyła stawkę godzinową dla wystąpień intensywnie korzystających z pamięci (Standard A5, Standard A6 i Standard A7) o 18% w większości swoich centrów danych w dniu 1 maja 2014 r., a ceny przedstawione w Tabeli 1 odzwierciedlają te nowe, niższe ceny.

Wynik pojedynczego rdzenia i wynik Multi-Core w dwóch kolumnach po prawej stronie tabeli 1 to średnie wyniki, które zaobserwowałem przy użyciu 32-bitowej wersji testu Geekbench 3.05 procesora i pamięci na przykładowym Windows Server 2012 R2 Datacenter Maszyna wirtualna w centrum danych wschodnich Stanów Zjednoczonych. Te wyniki mogą, ale nie muszą być reprezentatywne dla tego, co zobaczysz.

Rozmiar maszyny wirtualnej Rdzenie procesora Pamięć (GB) Koszt godzinowy Koszt miesięczny Wynik jednego rdzenia Wynik wielordzeniowy
Podstawowy A0 1 (udostępniony) 0,75 0,018 USD ~14 USD 507 498
Podstawowy A1 1 1,75 0,074 USD ~56 USD 679 670
Podstawowy A2 2 3,50 0,148 USD ~111 USD 709 1358
Podstawowy A3 4 7.00 0,296 USD ~221 USD 717 2472
Podstawowy A4 8 14.00 0,592 USD ~441 USD 724 4042
Standard A0 1 (udostępniony) 0,75 0,020 USD ~15 USD 492 502
Standardowy A1 1 1,75 0,090 USD ~67 USD 1068 1083
Standard A2 2 3,50 0,180 USD ~134 USD 1069 2002
Standardowy A3 4 7.00 0,360 USD ~268 USD 1070 3593
Standardowy A4 8 14.00 0,720 USD ~536 USD 1094 6446
Standardowy A5 2 14.00 0,330 USD ~246 USD 1.080 2026
Standardowy A6 4 28,00 0,660 USD ~492 USD 1.080 3686
Standardowy A7 8 56,00 1,320 USD ~983 USD 1056 6185

Tabela 1:Wybrane specyfikacje maszyn wirtualnych dla systemu Windows Azure w centrum danych we wschodnich Stanach Zjednoczonych

Obecnie firma Microsoft ma dziewięć centrów danych, które mogą obsługiwać nowe trwałe maszyny wirtualne, w tym Wschodnie Stany Zjednoczone, Zachodnie Stany Zjednoczone, Brazylia Południowa (wersja zapoznawcza), Europa Północna, Europa Zachodnia, Azja Wschodnia, Azja Południowo-Wschodnia, Japonia Zachodnia i Japonia Wschodnia. Według firmy Microsoft „A1 to najmniejszy rozmiar zalecany dla obciążeń produkcyjnych” i należy wybrać „maszynę wirtualną z 4 lub 8 rdzeniami procesora podczas korzystania z programu SQL Server Enterprise Edition”. Jednym z przydatnych, choć nieco przestarzałych odniesień do uruchamiania SQL Server na maszynie wirtualnej Windows Azure są wytyczne dotyczące wydajności dla SQL Server w maszynach wirtualnych Windows Azure, które opublikowano w czerwcu 2013 r.

Charakterystyka maszyny wirtualnej Windows Azure

Gdy spojrzysz na właściwości procesora na karcie Wydajność w Menedżerze zadań systemu Windows Server 2012 R2 (na rysunkach 1 i 2), zauważysz, że informuje on, że używa on stosunkowo starego, 45-nanometrowego procesora AMD Opteron 4171 HE, działającego z prędkością prędkość 2,1 GHz. Ten konkretny sześciordzeniowy procesor został wprowadzony w czerwcu 2010 roku jako część dwugniazdowej rodziny Lisbon. Przyrostek HE oznacza, że ​​jest to model energooszczędny o niskim poborze mocy, który nie jest dobrym wyborem do użycia w programie SQL Server, ponieważ rezygnuje ze znacznej wydajności przy stosunkowo niewielkim zużyciu energii. Po pewnym kopaniu powiedziano mi, że ten procesor jest specjalnym procesorem OEM dla centrów danych Microsoft.


Rysunek 1:Podstawowa maszyna wirtualna A0 we wschodnich Stanach Zjednoczonych Centrum


Rysunek 2:Standardowa maszyna wirtualna A7 we wschodnich stanach USA Centrum

Innym dużym problemem związanym z tym procesorem, oprócz jego wieku i stosunkowo słabej wydajności jednowątkowej, jest fakt, że ma on tylko sześć rdzeni fizycznych. Jest to problem z rozmiarami maszyn wirtualnych Basic A4, Standard A4 i Standard A7, które mają dwa węzły NUMA i łącznie osiem rdzeni fizycznych. Oznaczałoby to, że maszyna wirtualna o takim rozmiarze przeszłaby przez węzeł NUMA na bazowym hoście fizycznym, co nie jest dobrym pomysłem dla wydajności pamięci. Trudno mi uwierzyć, że Microsoft zrobiłby to celowo. Trudno mi też uwierzyć, że każda maszyna wirtualna Azure w każdym centrum danych, które do tej pory wypróbowałem, korzysta z dokładnie tego samego starszego procesora AMD. Dość powszechnie wiadomo, że Microsoft ma co najmniej trzy różne generacje sprzętu (Gen 1, Gen 2 i Gen 3), z którego do tej pory korzystał w swoich centrach danych Azure, oferując różną wydajność maszyn wirtualnych. Po kilku kolejnych zapytaniach odkryłem, że ten procesor AMD Opteron 4171 HE to procesor Azure Gen 2.

Możesz przeglądać internetową bazę danych Geekbench 3 z przesłanymi wynikami testów porównawczych, szukając systemów wykorzystujących procesor AMD Opteron 4171 HE tutaj. Możesz zauważyć, że każdy wynik dla tego procesora wydaje się dotyczyć maszyny wirtualnej Microsoft, co również jest dość ciekawe. Menedżer zadań systemu Windows Server 2012 R2 zgłasza pamięć podręczną L1 jako „nie dotyczy”, a nawet nie wymienia rozmiarów pamięci podręcznej L2 i L3 na tych maszynach wirtualnych platformy Azure. Kolejnym ciekawym dowodem jest fakt, że standardowe instancje mają o około 50% wyższe wyniki Geekbench 3 niż równoważne podstawowe instancje, gdy mają dokładnie taką samą całkowitą liczbę rdzeni procesora i rozmiary pamięci, zarówno dla wyniku jednordzeniowego, jak i wielordzeniowego wynik. Ta duża rozbieżność nie ma żadnego sensu, jeśli podstawowa maszyna hosta faktycznie używa tego samego procesora.

Podsumowanie

Wszystkie te dowody początkowo doprowadziły mnie do wniosku, że Microsoft prawdopodobnie zasłaniał rzeczywisty procesor w komputerze głównym. Pomyślałem, że mogą to robić, aby uniemożliwić ludziom celowe udostępnianie wielu maszyn wirtualnych, dopóki nie zdarzy się, że maszyna wirtualna będzie działać na nowszym, szybszym sprzęcie hosta. Okazuje się, że Microsoft nie jest aż tak sprytny. Zostałem zapewniony, że firma Microsoft nie zmienia tożsamości procesora w maszynie wirtualnej platformy Azure. Istnieją nowsze procesory platformy Azure Gen 3, które można uzyskać w maszynie wirtualnej platformy Azure podczas aprowizacji nowych maszyn wirtualnych w przyszłości. Innym możliwym powodem moich wyników było to, że prawdopodobnie używają pewnego rodzaju zarządzania, aby ograniczyć wydajność maszyn wirtualnych do niezawodnego, jednolitego poziomu, niezależnie od podstawowego sprzętu hosta, dzięki czemu mogą z czasem hostować więcej maszyn wirtualnych na mniejszym sprzęcie. Byłby to mądry sposób działania dla hostera IaaS.

Stosunkowo niskie wyniki Geekbench 3,05 (patrz rysunek 3) dla nawet największych maszyn wirtualnych platformy Azure oznaczają, że tracisz znaczną wydajność procesora i pamięci w porównaniu z równoważnym fizycznym serwerem dwuprocesorowym z taką samą liczbą rdzeni procesora i pamięci.


Rysunek 3:32-bitowe wyniki Geekbench 3.05 dla standardu Maszyna wirtualna A4 w centrum danych wschodnich Stanów Zjednoczonych

Wiele obciążeń programu SQL Server będzie działać doskonale na tym poziomie wydajności maszyny wirtualnej, choć nieco wolniej niż zwykle. Jeśli uwzględnisz oszczędności licencji SQL Server 2014 Enterprise Edition z ośmiordzeniowej maszyny, a także nakłady inwestycyjne na skromny, dwuprocesorowy serwer i związaną z nim pamięć masową, możesz sobie pozwolić na uruchamianie maszyny wirtualnej Standard A7 przez całą dobę, 7 dni w tygodniu. pięć do sześciu lat. Biorąc pod uwagę taki zwrot z inwestycji, widzę, że wiele organizacji podejmuje ekonomiczne decyzje o przeniesieniu przynajmniej części swojej infrastruktury SQL Server na Azure Virtual Machines. Dopóki Twoje obciążenie może działać na maszynie wirtualnej o pojemności 56 GB lub mniejszej, a także o ile akceptowalna jest mniejsza wydajność procesora i pamięci niż typowy laptop z niedawnego rocznika, jest to racjonalny sposób działania. Microsoft ogłosił niedawno dostępność większych, znacznie szybszych instancji obliczeniowych maszyn wirtualnych A8 i A9, które wykorzystują procesory Intel Xeon E5-2670. Będzie to ogromna poprawa wydajności w porównaniu z procesorami Azure Gen 2.

W nadchodzącym artykule przyjrzę się wydajności we/wy w Azure Virtual Machines.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Blokowanie i wydajność

  2. Jak obliczyć kwadrat w SQL

  3. Prisma, jak wyczyścić bazę danych

  4. Podstawy programowania równoległego z platformą rozwidlenia/połączenia w Javie

  5. Monitorowanie opóźnienia odczytu/zapisu