Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Che cos'è DTU nel database SQL di Azure e come capire quanto ci serve

Microsoft Azure fornisce il motore di database Platform as a Service (PaaS) tramite la piattaforma del database SQL di Azure, in modo da poter utilizzare questo database per le applicazioni basate su cloud. Il vantaggio principale del database SQL di Azure è consentire il ridimensionamento semplice con zero tempi di inattività e non richiede alcun processo di aggiornamento della versione o patch. Inoltre, non dobbiamo preoccuparci di problemi hardware.

Tuttavia, l'importante considerazione del database SQL di Azure è soddisfare i requisiti di prestazioni del database distribuito a fronte del costo minimo. Indubbiamente, nessuno vuole pagare per le risorse ridondanti o le funzionalità che non utilizza o prevede di utilizzare.

A questo punto, Microsoft Azure offre due diversi modelli di acquisto per garantire l'efficienza dei costi:

  • Modello di acquisto basato su Database Transaction Unit (DTU).
  • Modello di acquisto basato su Virtual Core (vCore)

Una decisione sul modello di acquisto influisce direttamente sulle prestazioni del database e sull'importo totale delle fatture. Secondo me, se il database distribuito non consumerà troppe risorse, il modello di acquisto basato su DTU sarà più adatto.

Ora discuteremo i dettagli su questi due modelli di acquisto nelle sezioni seguenti.

Modello di acquisto basato su Database Transaction Unit (DTU)

Per comprendere più chiaramente il modello di acquisto basato su DTU, è necessario chiarire cosa ha senso DTU nel database SQL di Azure. DTU è l'abbreviazione di "Database Transaction Unit" e descrive una metrica dell'unità di prestazioni per il database SQL di Azure. Possiamo semplicemente apprezzare il DTU per la potenza in un'auto perché influisce direttamente sulle prestazioni del database. DTU rappresenta una combinazione delle seguenti metriche delle prestazioni come singola unità di prestazioni per il database SQL di Azure:

  • CPU
  • Memoria
  • I/O dati e I/O registro

L'idea principale del concetto DTU è quella di offrire ai client una configurazione delle risorse preconfigurata in modo da semplificare il ridimensionamento delle prestazioni su una singola metrica. Ad esempio, se abbiamo bisogno di maggiori prestazioni, possiamo far scorrere la barra e aumentare il numero di DTU nel database SQL di Azure.

Il modello di acquisto basato su DTU contiene tre diversi livelli di servizio e questi livelli di servizio offrono diverse DTU e opzioni di funzionalità. La tabella seguente illustra i livelli di servizio che hanno preso parte al modello di acquisto basato su DTU.

Base

Standard

Premio

Carico di lavoro target

Sviluppo e produzione

Sviluppo e produzione

Sviluppo e produzione

SLA sui tempi di attività

99,99%

99,99%

99,99%

Massima conservazione dei backup

7 giorni

35 giorni

35 giorni

CPU

Basso

Basso, Medio, Alto

Medio, Alto

Velocità IO (approssimativa)

1-5 IOPS per DTU

1-5 IOPS per DTU

25 IOPS per DTU

Latenza IO (approssimativa)

5 ms (lettura), 10 ms (scrittura)

5 ms (lettura), 10 ms (scrittura)

2 ms (lettura/scrittura)

Indicizzazione del Columnstore

N/A

S3 e superiori

Supportato

OLTP in memoria

N/A

N/A

Supportato

DTU massimo

5

3000 (S12)

4000 (P15)

Dimensione massima di archiviazione

2 GB

250 GB

1 TB

Come possiamo vedere, le DTU e le funzionalità massime variano in base al loro livello di servizio. Inoltre, il modello tariffario verrà modificato in relazione al livello di servizio. Ad esempio, la seguente configurazione per un singolo database nel modello di acquisto basato su DTU sarà di $ 584,00 al mese.

Piscina elastica

In breve, Elastic Pool ci aiuta a gestire e ridimensionare automaticamente i database multipli che hanno richieste di risorse variabili e imprevedibili su un pool di risorse condiviso. Attraverso l'Elastic Pool, non è necessario ridimensionare continuamente i database in base alle fluttuazioni della domanda di risorse. I database che fanno parte del pool consumano le risorse del pool elastico quando sono necessarie ma non possono superare i limiti delle risorse del pool elastico in modo da fornire una soluzione conveniente.

Stima corretta della DTU per il database SQL di Azure

Dopo aver deciso di utilizzare il modello di acquisto basato su DTU, dobbiamo scoprire la seguente domanda-risposta con ragioni logiche:

  • Quale livello di servizio e quante DTU sono necessarie per il mio carico di lavoro durante la migrazione ad Azure SQL?

Calcolatrice DTU sarà la soluzione principale per stimare i requisiti DTU durante la migrazione di database locali al database SQL di Azure. L'idea principale di questo strumento è acquisire i vari utilizzi delle metriche dall'SQL Server esistente che influiscono sulle DTU e quindi tenta di stimare approssimativamente le DTU e il livello di servizio alla luce degli utilizzi delle prestazioni raccolti. Il calcolatore DTU raccoglie le seguenti metriche tramite l'utilità della riga di comando o lo script di PowerShell e salva queste metriche in un file CSV.

  • Processore - % tempo di elaborazione
  • Disco logico - Letture disco/sec
  • Disco logico - Scritture disco/sec
  • Database - Byte di registro scaricati/sec

In questo articolo, impareremo l'uso dell'utilità della riga di comando perché questo è un progetto open source e i codici sono ospitati su GitHub. Pertanto, possiamo apportare modifiche facilmente se necessario. Dopo aver scaricato e decompresso l'utilità della riga di comando, due file verranno davanti a noi.

SqlDtuPerfmon.exe.config ci aiuta a determinare alcuni parametri dell'utilità della riga di comando:

CsvPath specifica il percorso del file CSV in cui verranno archiviate le metriche raccolte.

SampleInterval specifica per quanti secondi verranno raccolti i campioni

MaxSamples specifica il numero massimo di campioni che verranno raccolti.

A questo punto, dobbiamo tenere conto di alcune considerazioni sul Calcolatore DTU. Calcolatrice DTU raccoglie l'utilizzo totale delle metriche sul computer. Per questo motivo, gli altri processi che influiscono sul consumo di CPU, memoria e disco devono essere fermati altrimenti sarà difficile fare una stima accurata delle DTU. Un altro problema è che, per quanto possibile, dobbiamo raccogliere l'utilizzo delle metriche che coprono gli intervalli di tempo di picco del carico di lavoro. In questo modo, il calcolatore DTU offre i migliori consigli e scopriamo il requisito massimo di DTU con una stima più approssimativa. Ora eseguiremo SqlDtuPerfmon.exe e inizierà direttamente a raccogliere l'utilizzo delle risorse e salvare il file CSV specificato.

Dopo aver completato la raccolta dell'utilizzo delle risorse, inseriremo il numero dei core e caricheremo il file CSV sul sito Web di DTU Calculator.

Quando si fa clic sul pulsante Calcola, in primo luogo, sullo schermo viene visualizzato il grafico a torta Livello di servizio/Livello di prestazione che mostra i suggerimenti del livello di servizio stimato suddivisi in sezioni con i dettagli della percentuale. Secondo DTU Calculator, il livello Standard - S6 fornirà prestazioni soddisfacenti per questo carico di lavoro.

Appena sotto questo grafico, viene mostrato il grafico DTU nel tempo e questo grafico rappresenta le DTU che cambiano rispetto al periodo di tempo. Prima di valutare questo grafico, possiamo aggiungere alcune informazioni aggiuntive per interpretarlo più facilmente.

Come puoi vedere, il grafico a linee rappresenta un carico di lavoro instabile, ma ha avuto più senso quando abbiamo aggiunto le note informative. A mio avviso, questo grafico è molto utile per comprendere l'interazione tra le modifiche del carico di lavoro e le DTU. Pertanto, possiamo fare una stima più corretta delle DTU richieste. Come accennato all'inizio dell'articolo, il nostro obiettivo principale dovrebbe essere trovare una soluzione conveniente per il carico di lavoro.

Tuttavia, questi suggerimenti non esprimono i requisiti precisi della DTU in Azure SQL. Per questo motivo, potrebbe essere necessario modificare il livello di servizio o il modello di acquisto dopo la distribuzione del database in Azure SQL.

Quando si fa clic su Visualizza altri dettagli, verranno visualizzati alcuni report aggiuntivi e questi report rappresentano i singoli consigli per l'utilizzo di CPU, IOPS e risorse di registro. Saranno molto utili per comprendere in particolare questi utilizzi.

Modello di acquisto basato su core virtuale (vCore)

Questo concetto è simile all'approccio tradizionale perché siamo in grado di decidere ogni risorsa del database. Possiamo organizzare manualmente le opzioni di VCore e dimensione massima dei dati in questo modello. Tuttavia, non possiamo determinare la risorsa di memoria. Ogni VCore è dotato di memoria dedicata e il valore dedicato della memoria dipende dalla generazione dei VCore.

Infine, in questo modello possiamo scegliere i seguenti livelli di servizio:

  • Uso generico.
  • Business Critical.
  • Iperscala

Conclusione

In questo articolo abbiamo esplorato i modelli di acquisto del database SQL di Azure e abbiamo scoperto le istruzioni per l'uso del calcolatore DTU per stimare il DTU richiesto in SQL di Azure per i database locali.