Optimierter Preis durch automatische Skalierung von Computeressourcen bei serverlosen Azure SQL-Datenbank-Instanzen

Veröffentlicht am 17 Mai, 2019

Principal Program Manager, Azure SQL Database

Das Optimieren der Computeressourcen zum Erreichen von Leistungszielen bei gleichzeitiger Kontrolle der Kosten kann schwierig sein. Dies gilt insbesondere dann, wenn die Datenbankworkloads komplexe Nutzungsmuster aufweisen. Wir freuen uns, zur Unterstützung bei diesen Herausforderungen die Vorschauversion des serverlosen Azure SQL-Datenbank-Diensts bekannt geben zu können. Mit dem neuen serverlosen SQL-Datenbank-Dienst werden das Preis-Leistungs-Verhältnis optimiert und die Leistungsverwaltung von Datenbanken mit zeitweiliger, unvorhersehbarer Nutzung vereinfacht. Branchenanwendungen, Dev/Test-Datenbanken, Content Management- und E-Commerce-Systeme sind nur einige Beispiele für Anwendungen, deren Nutzungsmuster sich ideal für eine serverlose SQL-Datenbank-Instanz eignen. Der serverlose SQL-Datenbank-Dienst bietet sich auch für neue Anwendungen an, bei denen der Computebedarf vorab nicht genau bekannt ist, oder wenn die Workloads ein häufiges Neuskalieren erfordern, um die Kosten niedrig zu halten. Der serverlose Computetarif bietet alle vollständig verwalteten, integrierten Datenverarbeitungsvorteile von SQL-Datenbank, und er hilft gleichzeitig dabei, die Anwendungsentwicklung zu beschleunigen, die Komplexität im Betrieb zu reduzieren und die Gesamtkosten zu senken.

Automatische Skalierung für Computeressourcen

Bei serverlosen SQL-Datenbank-Instanzen wird die Computekapazität für Singletons basierend auf dem Workloadbedarf skaliert, und es werden nur die verbrauchten Computeressourcen nach Sekunden abgerechnet. Der serverlose Tarif stellt den Gegenpart zum bereitgestellten Computetarif in SQL-Datenbank dar, bei dem eine feststehende Menge an Computeressourcen zu einem festen Preis bereitgestellt und nach Stunden abgerechnet wird. Kurzfristig müssen bereitgestellte Computedatenbanken entweder zu viele (kostenpflichtige) Ressourcen bereitstellen, um Verbrauchsspitzen abzudecken, oder bei einer zu niedrigen Bereitstellungsmenge Leistungseinbußen riskieren. Langfristig können bereitgestellte Computedatenbanken zwar neu skaliert werden, aber Sie müssen dabei die Nutzungsmuster vorhersagen oder benutzerdefinierte Logik schreiben, um Neuskalierungen nach einem Zeitplan oder anhand von Leistungsmetriken auszulösen. Dies erhöht den Aufwand bei der Entwicklung und die Komplexität im Betrieb. Beim serverlosen Ansatz wird die Skalierung der Computeressourcen innerhalb konfigurierbarer Grenzwerte durch den Dienst verwaltet, sodass Sie jederzeit über die richtige Menge an Ressourcen verfügen. Darüber hinaus bietet die serverlose Option die Möglichkeit des automatischen Anhaltens der Datenbank während inaktiver Phasen und der automatischen Fortsetzung, wenn wieder Aktivitäten erforderlich sind.

Nur für genutzte Computekapazitäten bezahlen

Beim serverlosen SQL-Datenbank-Dienst wird die Computekapazität ausschließlich basierend auf den genutzten CPU- und Speicherressourcen abgerechnet.  Bei einer pausierten Datenbank wird nur der Speicher abgerechnet, sodass zusätzliche Einsparmöglichkeiten entstehen.

Gehen Sie beispielsweise von einer Branchenanwendung oder einer Dev/Test-Datenbank aus, die nachts inaktiv ist, am Tag in Spitzenzeiten aber Kapazitäten mit mehreren Kernen benötigt. Diese Anwendung könnte z. B. eine serverlose Datenbank nutzen, die für das automatische Anhalten und die automatische Skalierung auf bis zu 4 virtuelle Kerne konfiguriert wurde und im Lauf von 24 Stunden folgendes Nutzungsmuster aufweist:

Diagramm der Nutzungsmuster einer serverlosen SQL-Datenbank-Instanz über einen 24-Stunden-Zeitraum

Wie Sie sehen können, entspricht die Datenbanknutzung den abgerechneten Computeressourcen. Diese werden in Einheiten von Sekunden genutzter virtueller Kerne gemessen und belaufen sich als Summe auf ca. 46.000 Sekunden virtueller Kerne über den Zeitraum von 24 Stunden. Angenommen, der Preis pro Compute-Einheit für die serverlose Datenbank beträgt 0,000073 USD/V-Kern/Sekunde. Die Computerechnung für diesen Nutzungstag läge dann unter 3,40 USD. Die Berechnung erfolgt durch die Multiplikation des Preises für die Compute-Einheit mit der Gesamtanzahl von V-Kern-Sekunden. Während dieses Zeitraums wurde die Datenbank im Ruhemodus automatisch angehalten und konnte trotzdem zu Spitzenzeiten bis zu 80 % der 4 virtuellen Kerne ohne Eingriff des Kunden nutzen. In diesem Beispiel ist die Einsparung durch den serverlosen Betrieb im Vergleich zu einer bereitgestellten Computedatenbank, die mit demselben Grenzwert von 4 virtuellen Kernen konfiguriert wurde, erheblich.  

Beachten Sie, dass während der Vorschauphase ein Rabatt auf die Preise gilt. In diesem Beispiel basiert der Preis auf der Region „USA, Osten“ im Mai 2019 und kann sich ändern. Die aktuellen Preise finden Sie in der Preisübersicht für Azure SQL-Datenbank.

Kompromisse beim Preis-Leistungs-Verhältnis

Wenn Sie eine serverlose SQL-Datenbank-Instanz verwenden, müssen Sie einige Kompromisse beim Preis-Leistungs-Verhältnis berücksichtigen. Diese Kompromisse beziehen sich auf den Preis pro Compute-Einheit und die Auswirkungen auf die Anwendungsleistung aufgrund der Aktivierung der Computeressourcen nach geringer Nutzung oder dem Ruhezustand.

Preis pro Compute-Einheit

Der Preis pro Compute-Einheit ist bei einer serverlosen Datenbank höher als bei einer bereitgestellten Computedatenbank, da sie für Workloads mit zeitweiligen Nutzungsmustern optimiert ist. Wenn die CPU- oder Speichernutzung hoch genug ist und lange genug andauert, kann der Tarif für bereitgestellte Computeressourcen günstiger sein.

Aktivierung von Computeressourcen nach geringer Nutzung

Während eine serverlose Datenbank online ist, wird schrittweise Speicher freigegeben, wenn die CPU- oder Speicherauslastung lange genug niedrig ist. Wenn die Aktivität der Workload wieder ansteigt, ist möglicherweise Datenträger-E/A erforderlich, um Datenseiten erneut im SQL-Pufferpool zu aktivieren, oder es müssen Abfragepläne neu kompiliert werden. Diese Richtlinie zur Speicherverwaltung für das Freigeben von Cache bei geringem Verbrauch ist bei serverlosen SQL-Datenbank-Instanzen einzigartig und soll die Kosten für die Kunden gering halten – sie kann aber Auswirkungen auf die Leistung haben. Das Freigeben von Speicher bei niedrigem Verbrauch tritt beim Tarif mit bereitgestellten Computeressourcen für Singletons oder Pool für elastische Datenbanken nicht auf, sodass diese Beeinträchtigung vermieden wird.

Aktivierung von Computeressourcen nach dem Anhalten

Die Wartezeit für das Anhalten und Fortsetzen einer serverlosen Datenbank beträgt in der Regel maximal eine Minute. In dieser Zeit ist die Datenbank offline. Nach dem Fortsetzen der Datenbank müssen die Speichercaches wieder aktiviert werden. Dies sorgt für zusätzliche Wartezeit, bevor die optimale Leistung wiederhergestellt ist. Die Dauer des Ruhezustands, nach der das automatische Anhalten erfolgt, kann konfiguriert werden. So können Sie diese Auswirkungen auf die Leistung ausgleichen. Alternativ kann das automatische Anhalten auch für Workloads deaktiviert werden, bei denen diese Beeinträchtigung zu Problemen führen würde. Sie profitieren aber trotzdem weiterhin von der automatischen Skalierung. Die Computemindestwerte werden – solange die Datenbank online ist – unabhängig vom Verbrauch abgerechnet. Aus diesem Grund kann das Deaktivieren des automatischen Anhaltens zu höheren Kosten führen.

Weitere Informationen

Der serverlose Azure SQL-Datenbank-Dienst wird im Tarif „Universell“ für Singletons unterstützt.