Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ausführen von SQL Server 2014 auf einem virtuellen Azure-Computer

Microsoft macht es immer einfacher, SQL Server 2014 auf einer virtuellen Azure-Maschine in einem der siebzehn Azure-Rechenzentren von Microsoft auszuführen. Sie können einen vorkonfigurierten virtuellen Computer mit einer vorkonfigurierten SQL Server 2014-Instanz aus der Azure-Galerie auf einem virtuellen Azure-Computer beliebiger Größe Ihrer Wahl ausführen. Eine der Optionen aus dem Katalog ist „SQL Server 2014 Enterprise Optimized for Transactional Workloads“, ausgeführt auf Windows Server 2012 R2. Eine nette Sache bei der Verwendung eines vorkonfigurierten Galerie-Images ist, dass Sie keine SQL Server 2014-Lizenzen bezahlen müssen. Sie zahlen einfach die stündlichen Kosten für die Edition von SQL Server und die Größe der virtuellen Maschine, die Sie auswählen.

SQL Server 2014-Konfigurationsoptionen

Microsoft erklärt:„Dieses Enterprise Edition-Image ist für OLTP-Workloads optimiert und für VM-Größen einschließlich A4, A7, A8 und A9 vorgesehen. Nach der Bereitstellung wird die VM mit vorkonfigurierten Windows-Speicherplätzen geliefert.“ Microsoft führt auch einige Konfigurationsarbeiten auf Instanzebene auf SQL Server 2014 durch, obwohl sie nicht weit genug mit dem gehen, was ich als bewährte Standardverfahren betrachten würde.

Sie erstellen acht tempdb-Datendateien, die alle 25600 MB groß sind, mit einem Autogrow-Inkrement von 1024 MB, was eine gute Standardauswahl ist. Sie aktivieren auch TF1117 und TF1118 als Ablaufverfolgungsflags beim Start, die ebenfalls eine gute Wahl für SQL Server sind. Schließlich ermöglicht Microsoft auch die sofortige Dateiinitialisierung und das Sperren von Seiten im Speicher des Betriebssystems, dem ich ebenfalls zustimme.

Ich würde es vorziehen, wenn Microsoft auch einige Änderungen an diesen Konfigurationsoptionen auf Instanzebene vornimmt:

  1. Backup-Komprimierungsstandard
  2. Kostenschwelle für Parallelität
  3. maximaler Parallelitätsgrad
  4. maximaler Serverspeicher (MB)
  5. für Ad-hoc-Workloads optimieren

Die Sicherungskomprimierung sollte in den meisten Fällen standardmäßig aktiviert sein. Der Kostenschwellenwert für Parallelität sollte je nach Workload häufig auf einen höheren Wert als den Standardwert von 5 angehoben werden. Der maximale Parallelitätsgrad sollte normalerweise basierend auf der Anzahl der Kerne in einem NUMA-Knoten auf einen nicht standardmäßigen Wert geändert werden. Diese Einstellung hängt auch von Ihrer Auslastung ab. Der maximale Serverarbeitsspeicher sollte auf einen nicht standardmäßigen Wert festgelegt werden, basierend auf der Größe des Arbeitsspeichers in der virtuellen Maschine und dem, was Sie (neben der SQL Server-Datenbank-Engine) auf der VM ausführen. Schließlich denke ich, dass die Optimierung für Ad-hoc-Workloads aktiviert werden sollte, so ziemlich in allen Fällen.

Zur Verteidigung von Microsoft:Es wäre schwierig, für einige dieser Elemente eine zufriedenstellende Konfigurationsauswahl zu treffen, ohne (im Voraus) die Details Ihrer VM-Größe und der erwarteten Arbeitslast des Datenbankservers zu kennen. Damit bleibt Ihnen die Aufgabe überlassen, genau wie bei einer lokalen SQL Server-Instanz.

Größe virtueller Azure-Maschinen

Auch wenn Sie alles von einer A0 Basic- bis zu einer A9 Standard-Maschine wählen können, empfiehlt Microsoft, dass Sie für die Produktionsnutzung entweder eine virtuelle Maschine der Größe A4 Standard, A7 Standard, A8 Standard oder A9 Standard auswählen. Preisdetails für virtuelle SQL Server-Maschinen sind hier aufgeführt.

Wenn Sie sich die vergleichenden Spezifikationen für diese Empfehlungen in Tabelle 1 ansehen, ist es schwer zu verstehen, warum Sie sich für ein A4-Standardgerät entscheiden sollten, da es den gleichen Betrag pro Stunde kostet wie die größeren A7- oder A8-Standardgeräte. Beim Blick in die Online-Dokumentation wird zunächst nicht ganz klar, was der eigentliche Unterschied zwischen einer A7- und einer A8-Standard-Maschine ist. Wenn man etwas tiefer gräbt, gilt die A8 Standard-Maschine als rechenintensive Instanz, die einen schnelleren 2,6-GHz-Intel Xeon E5-2670-Prozessor zusammen mit zwei Netzwerkadaptern (einer mit 10 Gbit/s und einer mit 32 Gbit/s RDMA-fähig) verwenden soll.

Die virtuelle A7 Standard-Maschine verwendet einen etwas langsameren 2,2-GHz-Intel-Xeon-E5-2660-Prozessor, während die Netzwerkkonnektivität standardmäßiges 1-Gbit/s-Ethernet zu sein scheint. Dies klingt zwar nach einem signifikanten Unterschied in der Prozessor- und Netzwerkleistung, ist aber nicht wirklich das Hauptproblem bei den virtuellen Maschinen der A-Serie für die Verwendung von SQL Server.

VM-Größe SQL-Standardsatz SQL Enterprise-Tarif Kernzahl RAM-Menge
A4-Standard 0,80 $/Std. 3,00 $/Std. 8 14 GB
A7-Standard 0,80 $/Std. 3,00 $/Std. 8 56 GB
A8 Standard 0,80 $/Std. 3,00 $/Std. 8 56 GB
A9-Standard 1,60 $/Std. 6,00 $/Std. 16 112 GB

Tabelle 1:Informationen zu virtuellen Maschinen der A-Serie von SQL Server

Das Hauptproblem bei allen virtuellen Maschinen der A-Serie ist die ziemlich miserable E/A-Subsystemleistung, obwohl Microsoft das Festplattensubsystem mit Windows Storage Spaces vorkonfiguriert hat, um angesichts der inhärenten Leistungsbeschränkungen der A-Serie die bestmögliche Leistung zu erzielen. Reihe von virtuellen Maschinen und Hosts. Abbildung 1 zeigt die CrystalDiskMark-Ergebnisse für das Laufwerk E:einer A4-Standardmaschine aus dem Azure-Rechenzentrum im Osten der USA, die für Transaktionsprotokolldateien gedacht ist.

Abbildung 1:A4-Standard-CrystalDiskMark-Ergebnisse

Eine viel bessere Alternative für SQL Server sind die virtuellen Maschinen der D-Serie. Diese virtuellen Maschinen kosten pro Stunde genauso viel wie die vergleichbar großen virtuellen Maschinen der A-Serie, und sie verfügen über lokalen SSD-Speicher, der nur für tempdb- und/oder BPE-Dateien (Buffer Pool Extensions) verwendet werden sollte, da sie nicht persistent sind. Einige relevante Spezifikationen für virtuelle Maschinen der D-Serie sind in Tabelle 2 aufgeführt.

VM-Größe SQL-Standardsatz SQL Enterprise-Tarif Kernzahl RAM-Menge
D4-Standard 0,80 $/Std. 3,00 $/Std. 8 28 GB
D13-Standard 0,80 $/Std. 3,00 $/Std. 8 56 GB
D14-Standard 1,60 $/Std. 6,00 $/Std. 16 112 GB

Tabelle 2:Informationen zu virtuellen Maschinen der D-Serie von SQL Server

Die D4-Standardmaschine kostet genauso viel wie eine A4-Standardmaschine, hat aber doppelt so viel RAM und etwas lokalen SSD-Speicher. Die D13-Standardmaschine kostet genauso viel wie eine A7- oder A8-Standardmaschine, bietet jedoch den Vorteil eines lokalen SDD-Speichers. Die D14-Standardmaschine kostet genauso viel wie eine A9-Standardmaschine, hat aber auch den Vorteil eines lokalen SSD-Speichers. Angesichts dieser Informationen macht es wenig Sinn, eine virtuelle Maschine der A-Serie für SQL Server zu verwenden.

Leider weisen auch die permanenten Laufwerke für Ihre SQL Server-Daten und Protokolldateien in CrystalDiskMark eine ziemlich unterdurchschnittliche E/A-Leistung auf, wie in den Abbildungen 2 und 3 gezeigt.

Abbildung 2:D14-Standard-CrystalDiskMark-Ergebnisse Abbildung 3:D14-Standard-CrystalDiskMark-Ergebnisse

Die lokale SSD-Leistung hängt von der Größe des virtuellen Azure-Computers ab, wobei größere Größen zu einer besseren lokalen SSD-Leistung führen. Die CrystalDiskMark-Leistungsergebnisse für eine D14-Standardmaschine im Azure-Rechenzentrum im Osten der USA sind in Abbildung 4 dargestellt.

Abbildung 4:D14-Standard-CrystalDiskMark-Ergebnisse für lokalen SSD-Speicher

Das Laufwerk F:(für SQL Server-Datendateien) hat etwas bessere Ergebnisse als das Laufwerk E:, aber beide Laufwerke haben eine sehr geringe Leistung für SQL Server.

Schlussfolgerung

Es scheint ziemlich klar, dass die Maschinen der D-Serie besser für die Verwendung von SQL Server geeignet sind als die Maschinen der A-Serie. Es ist auch sinnvoll, genau auf die Größe und den Preis der virtuellen Maschine zu achten, die Sie für SQL Server bereitstellen möchten, da Sie mehr RAM zum gleichen Stundenpreis erhalten können. Die beiden besten Optionen aus Leistungssicht sind die virtuellen D13- oder D14-Standardmaschinen.

Die vorkonfigurierten SQL Server 2014-Instanzen aus der Azure-Galerie können Ihnen viel Geld bei den SQL Server-Lizenzkosten sparen, und sie haben einen Großteil der erforderlichen Konfigurationsarbeit bereits im Basisimage abgeschlossen. Sie sollten trotzdem hineingehen und ein paar letzte Konfigurationsänderungen basierend auf Ihren Vorlieben und Ihrer Arbeitsbelastung vornehmen. Schließlich sollten Sie sich die Zeit nehmen, einige Leistungsbenchmarks auf Ihrer virtuellen Maschine auszuführen, damit Sie verstehen, welches Leistungsniveau sie liefern kann.