Database
 sql >> Datenbank >  >> RDS >> Database

Vergleich der Leistung von Windows Azure-VMs, Teil 1

Sofern Sie keine konzertierten Anstrengungen unternommen haben, um es zu ignorieren, haben Sie vielleicht gehört, dass Microsoft dies wirklich tun würde möchten, dass Sie einen Großteil Ihrer SQL Server-Datenbankinfrastruktur in ein Microsoft-Rechenzentrum verschieben, unabhängig davon, ob Sie zu einer Azure SQL-Datenbank wechseln (die ich kürzlich hier besprochen habe) oder ob Sie sie auf einer virtuellen Windows Azure-Maschine hosten. Microsoft nennt diese persistenten virtuellen Maschinen Compute-Instanzen , und sie haben zwei Hauptstufen zur Auswahl, darunter die Basic Compute Tier und die Standard Compute Tier. Sie beschreiben diese beiden Stufen als:

Basic Compute Tier :Diese neue Ebene von Compute-Instanzen ähnelt in der Konfiguration der Standard-Ebene mit niedrigeren Preisen. Diese Instanzen enthalten keinen Load Balancer und keine automatische Skalierung. Sie eignen sich gut für Einzelinstanz-Produktionsanwendungen, Entwicklungsworkloads, Testserver und Stapelverarbeitungsanwendungen, die diese Funktionen möglicherweise nicht benötigen. Die Basic-Compute-Ebene ist derzeit nur für die Allzweck-Instances verfügbar. Diese Instanzen reichen von Basic A0 bis Basic A4.

Standard-Compute-Tier :Diese Ebene von Recheninstanzen bietet einen optimalen Satz an Rechen-, Arbeitsspeicher- und E/A-Ressourcen zum Ausführen einer Vielzahl von Anwendungen. Diese Instanzen umfassen ohne zusätzliche Kosten Funktionen für die automatische Skalierung und den Lastenausgleich. Die Standard-Rechenebene ist für allgemeine, speicherintensive und rechenintensive Instanzen verfügbar. Diese Instanzen reichen von Standard A0 bis Standard A7.

Das Hosten Ihrer SQL Server-Infrastruktur auf einem virtuellen Windows Azure-Computer bietet mehrere wichtige Vorteile. Erstens haben Sie keine Kapitalkosten für Speicher oder Hardware sowie keine laufende Wartung des Speichers oder der Hardware. Zweitens haben Sie keine Betriebssystem- oder SQL Server-Lizenzkosten (wenn Sie ein SQL-Image aus der standardmäßigen Azure-VM-Galerie verwenden). Drittens können Sie in wenigen Minuten eine neue Azure-VM erstellen, auf der SQL Server bereits installiert ist (auch wenn es etwas länger dauern kann, das Betriebssystem und die SQL Server-Instanz vollständig gemäß Ihren Anforderungen zu konfigurieren). Auch in Zukunft liegt es an Ihnen, Windows- und SQL Server-Updates zu installieren, aber Sie müssen sich nicht um Dinge wie Firmware-, BIOS- oder Treiber-Updates kümmern.

Wenn Sie Windows Azure Virtual Machines zum Hosten Ihrer gesamten oder eines Teils Ihrer SQL Server-Infrastruktur verwenden möchten, sollten Sie sich der aktuellen Preisdetails bewusst sein, die für das spezifische Azure-Rechenzentrum verfügbar sind, in dem Sie Ihre virtuellen Computer hosten möchten, da die Preisgestaltung möglich ist variieren je nach Microsoft-Rechenzentrum. Microsoft bietet derzeit 13 verschiedene Größen virtueller Windows Azure-Maschinen an, wie auf der Seite „Größen virtueller Maschinen und Cloud-Dienste für Azure“ beschrieben. Microsoft hat die Stundenpreise für die arbeitsspeicherintensiven Instanzen (Standard A5, Standard A6 und Standard A7) in den meisten ihrer Rechenzentren am 1. Mai 2014 um 18 % gesenkt, und die in Tabelle 1 gezeigten Preise spiegeln diese neuen, niedrigeren Preise wider.

Der Single-Core-Score und der Multi-Core-Score in den beiden rechten Spalten von Tabelle 1 sind die Durchschnittswerte, die ich mit der 32-Bit-Version des Geekbench 3.05-Prozessor- und Speicher-Benchmarks auf einem beispielhaften Windows Server 2012 R2-Rechenzentrum beobachtet habe VM im Rechenzentrum im Osten der USA. Diese Ergebnisse können repräsentativ für das sein, was Sie sehen werden, müssen es aber nicht.

VM-Größe CPU-Kerne Arbeitsspeicher (GB) Stundenkosten Monatliche Kosten Single-Core-Bewertung Multi-Core-Score
Basis A0 1 (geteilt) 0,75 $0,018 ~$14 507 498
Basis A1 1 1,75 $0,074 ~$56 679 670
Basis A2 2 3,50 $0,148 ~$111 709 1.358
Basis A3 4 7,00 $0,296 ~$221 717 2.472
Basis A4 8 14.00 $0,592 ~$441 724 4.042
Standard A0 1 (geteilt) 0,75 $0,020 ~15 $ 492 502
Standard A1 1 1,75 $0,090 ~$67 1.068 1.083
Standard A2 2 3,50 $0,180 ~$134 1.069 2.002
Standard A3 4 7,00 $0,360 ~$268 1.070 3.593
Standard A4 8 14.00 $0,720 ~$536 1.094 6.446
Standard A5 2 14.00 $0,330 ~$246 1.080 2.026
Standard A6 4 28.00 $0,660 ~$492 1.080 3.686
Standard A7 8 56,00 $1.320 ~983 $ 1.056 6.185

Tabelle 1:Ausgewählte Spezifikationen virtueller Maschinen für Windows Azure im östlichen US-Rechenzentrum

Derzeit verfügt Microsoft über neun Rechenzentren, in denen neue persistente virtuelle Maschinen gehostet werden können, darunter USA, Westen, USA, Süden, Brasilien, Süden (Vorschau), Europa, Norden, Europa, Westen, Asien, Südosten, Japan, Westen und Japan, Osten. Laut Microsoft ist „A1 die kleinste empfohlene Größe für Produktions-Workloads“, und Sie sollten „eine virtuelle Maschine mit 4 oder 8 CPU-Kernen auswählen, wenn Sie SQL Server Enterprise Edition verwenden“. Eine nützliche, wenn auch etwas veraltete Referenz zum Ausführen von SQL Server auf einer virtuellen Windows Azure-Maschine ist die Leistungsanleitung für SQL Server in virtuellen Windows Azure-Maschinen, die im Juni 2013 veröffentlicht wurde.

Eigenschaften der virtuellen Windows Azure-Maschine

Wenn Sie sich die CPU-Eigenschaften auf der Registerkarte Leistung im Task-Manager von Windows Server 2012 R2 (in Abbildung 1 und Abbildung 2) ansehen, werden Sie feststellen, dass er meldet, dass er einen relativ alten 45-nm-AMD Opteron 4171 HE-Prozessor verwendet, der ausgeführt wird eine Geschwindigkeit von 2,1 GHz. Dieser spezielle Sechs-Kern-Prozessor wurde im Juni 2010 als Teil der Zwei-Sockel-Lissabon-Familie eingeführt. Das Suffix HE bedeutet, dass es sich um ein energieeffizientes Modell mit „niedrigem Stromverbrauch“ handelt, das keine gute Wahl für die Verwendung von SQL Server ist, da es eine erhebliche Menge an Leistung für einen relativ geringen reduzierten Energieverbrauch aufgibt. Nach einigem Suchen wurde mir gesagt, dass dieser Prozessor ein spezieller OEM-Prozessor für Microsoft-Rechenzentren ist.


Abbildung 1:Einfache virtuelle A0-Maschine in Daten aus dem Osten der USA Zentrieren


Abbildung 2:Virtuelle A7-Standardmaschine in Daten aus dem Osten der USA Zentrieren

Das andere große Problem bei diesem Prozessor neben seinem Alter und seiner relativ schlechten Single-Thread-Leistung ist die Tatsache, dass er nur sechs physische Kerne hat. Dies ist ein Problem bei den VM-Größen Basic A4, Standard A4 und Standard A7, die über zwei NUMA-Knoten und insgesamt acht physische Kerne verfügen. Dies würde bedeuten, dass eine VM dieser Größe einen NUMA-Knoten auf dem zugrunde liegenden physischen Host überqueren würde, was keine gute Idee für die Speicherleistung ist. Es fällt mir schwer zu glauben, dass Microsoft dies absichtlich tun würde. Es fällt mir auch schwer zu glauben, dass jede einzelne Azure-VM in jedem einzelnen Rechenzentrum, die ich bisher ausprobiert habe, genau denselben älteren AMD-Prozessor verwendet. Es ist ziemlich allgemein bekannt, dass Microsoft mindestens drei verschiedene Generationen von Hardware (Gen 1, Gen 2 und Gen 3) hat, die sie bisher in ihren Azure-Rechenzentren verwendet haben und die unterschiedliche VM-Leistung bieten. Nach einigen weiteren Nachforschungen habe ich herausgefunden, dass dieser AMD Opteron 4171 HE Prozessor ein Azure Gen 2 Prozessor ist.

Sie können die Online-Datenbank von Geekbench 3 mit hochgeladenen Benchmark-Ergebnissen durchsuchen und nach Systemen suchen, die den AMD Opteron 4171 HE-Prozessor hier verwenden. Sie werden vielleicht bemerken, dass jedes einzelne Ergebnis für diesen Prozessor für eine Microsoft Virtual Machine zu sein scheint, was auch ziemlich merkwürdig ist. Der Task-Manager von Windows Server 2012 R2 meldet den L1-Cache als „N/A“ und listet nicht einmal die L2- und L3-Cachegrößen auf diesen Azure-VMs auf. Ein weiterer merkwürdiger Beweis ist die Tatsache, dass die Standardinstanzen etwa 50 % höhere Geekbench 3-Ergebnisse aufweisen als die entsprechenden Basisinstanzen, wenn sie sowohl für den Single-Core-Score als auch für Multi-Core genau die gleiche Gesamtzahl an Prozessorkernen und Speichergrößen aufweisen Punktzahl. Eine so große Abweichung macht keinen Sinn, wenn der zugrunde liegende Hostcomputer tatsächlich denselben Prozessor verwendet.

Zusammenfassung

All diese Beweise führten mich zunächst zu dem Schluss, dass Microsoft wahrscheinlich den tatsächlichen Prozessor im Hostcomputer verschleierte. Ich dachte, sie tun dies möglicherweise, um zu verhindern, dass Benutzer absichtlich mehrere VMs bereitstellen, bis sie zufällig feststellen, dass eine VM auf neuerer, schnellerer Hosthardware ausgeführt wird. Es stellt sich heraus, dass Microsoft nicht ganz so schlau ist. Mir wurde versichert, dass Microsoft die Identität der CPU in einer Azure-VM nicht ändert. Es gibt neuere Azure Gen 3-Prozessoren, die Sie möglicherweise in einer Azure-VM erhalten, wenn Sie in Zukunft neue VMs bereitstellen. Ein weiterer möglicher Grund für meine Ergebnisse war, dass sie wahrscheinlich eine Art Governance verwenden, um die VM-Leistung unabhängig von der zugrunde liegenden Hosthardware auf ein zuverlässiges, einheitliches Niveau zu begrenzen, sodass sie im Laufe der Zeit mehr VMs auf weniger Hardware hosten können. Dies wäre eine kluge Vorgehensweise für einen IaaS-Hoster.

Die relativ niedrigen Geekbench 3.05-Ergebnisse (siehe Abbildung 3) selbst für die größten Azure-VMs bedeuten, dass Sie im Vergleich zu einem gleichwertigen physischen Zwei-Sockel-Server mit der gleichen Anzahl an Prozessorkernen und Arbeitsspeicher auf eine erhebliche Menge an Prozessor- und Arbeitsspeicherleistung verzichten.


Abbildung 3:32-Bit-Ergebnisse von Geekbench 3.05 für Standard Virtuelle A4-Maschine im Rechenzentrum im Osten der USA

Viele SQL Server-Workloads werden mit dieser VM-Leistung einwandfrei ausgeführt, wenn auch etwas langsamer als Sie es gewohnt sind. Wenn Sie die Lizenzeinsparungen für SQL Server 2014 Enterprise Edition bei einer Maschine mit acht Kernen plus die Investitionsausgaben für einen bescheidenen Server mit zwei Sockets und den zugehörigen Speicher berücksichtigen, könnten Sie es sich leisten, eine virtuelle Standard-A7-Maschine rund um die Uhr für etwa 24 Stunden pro Woche auszuführen fünf bis sechs Jahre. Angesichts dieser Art von ROI kann ich sehen, dass viele Unternehmen die wirtschaftliche Entscheidung treffen, zumindest einen Teil ihrer SQL Server-Infrastruktur auf Azure Virtual Machines zu verlagern. Solange Ihre Workload auf einer VM mit 56 GB oder weniger ausgeführt werden kann und solange eine geringere CPU- und Speicherleistung als bei einem typischen neueren Vintage-Laptop ebenfalls akzeptabel ist, ist dies eine vernünftige Vorgehensweise. Microsoft hat kürzlich die Verfügbarkeit von größeren, viel schnelleren A8- und A9-VM-Rechenintensiven Instanzen angekündigt, die Intel Xeon E5-2670-Prozessoren verwenden. Dies wird eine enorme Leistungsverbesserung gegenüber den Azure Gen 2-Prozessoren darstellen.

In einem der nächsten Artikel werde ich einen Blick auf die E/A-Leistung in Azure Virtual Machines werfen.