Elenco di controllo: procedure consigliate per SQL Server nelle macchine virtuali di Azure

Si applica a:SQL Server nella macchina virtuale di Azure

Questo articolo fornisce un elenco di controllo rapido come una serie di procedure consigliate e linee guida per ottimizzare le prestazioni di SQL Server in Azure Macchine virtuali (VM).

Per informazioni dettagliate, vedere gli altri articoli di questa serie: dimensioni della macchina virtuale, Archiviazione, sicurezza, configurazione hadr, raccolta di base.

Abilitare La valutazione SQL per SQL Server in macchine virtuali di Azure e SQL Server verrà valutata in base alle procedure consigliate note con i risultati nella pagina di gestione delle macchine virtuali SQL della portale di Azure.

Per i video sulle funzionalità più recenti per ottimizzare le prestazioni delle macchine virtuali di SQL Server e automatizzare la gestione, vedere i video esposti sui dati seguenti:

Panoramica

Durante l'esecuzione di SQL Server in Azure Macchine virtuali, continuare a usare le stesse opzioni di ottimizzazione delle prestazioni del database applicabili a SQL Server in ambienti server locali. Tuttavia, le prestazioni di un database relazionale in un cloud pubblico dipendono da molti fattori, ad esempio le dimensioni di una macchina virtuale e la configurazione dei dischi dati.

In genere esiste un compromesso tra l'ottimizzazione dei costi e l'ottimizzazione delle prestazioni. Questa serie di procedure consigliate per le prestazioni è incentrata sul miglioramento delle prestazioni per SQL Server in Azure Macchine virtuali. Se il carico di lavoro è meno impegnativo, è possibile che non siano necessarie tutte le ottimizzazioni consigliate. Prendere in considerazione le esigenze di prestazione, i costi e i modelli di carico di lavoro durante la valutazione di questi elementi consigliati.

Dimensioni della macchina virtuale

L'elenco di controllo in questa sezione illustra le procedure consigliate per le dimensioni delle macchine virtuali per SQL Server in macchine virtuali di Azure.

  • La nuova serie Ebdsv5 offre il rapporto massimo tra velocità effettiva di I/O e vCore in Azure, insieme a un rapporto da memoria a vCore pari a 8. Questa serie offre prestazioni ottimali per i carichi di lavoro di SQL Server nelle macchine virtuali di Azure. Prendere in considerazione questa serie per la maggior parte dei carichi di lavoro di SQL Server.
  • Usare le dimensioni delle macchine virtuali con 4 o più vCPU, ad esempio il E4ds_v5 o superiore.
  • Usare macchine virtuali con dimensioni ottimizzate per la memoria per ottenere prestazioni ottimali dei carichi di lavoro di SQL Server.
  • La serie Edsv5 , la serie M e Mv2 offrono il rapporto ottimale tra memoria e vCore necessario per i carichi di lavoro OLTP.
  • Le macchine virtuali serie M offrono il rapporto massimo tra memoria e vCore in Azure. Prendere in considerazione queste macchine virtuali per carichi di lavoro cruciali e di data warehouse.
  • Usare le immagini di Azure Marketplace per distribuire l'Macchine virtuali di SQL Server perché le impostazioni e le opzioni di archiviazione di SQL Server sono configurate per ottenere prestazioni ottimali.
  • Raccogliere le caratteristiche delle prestazioni del carico di lavoro di destinazione e usarle per determinare le dimensioni della macchina virtuale appropriate per l'azienda.
  • Usare gli strumenti di raccomandazione di Data Migration Assistant e SKU per trovare le dimensioni corrette della macchina virtuale per il carico di lavoro di SQL Server esistente.
  • Usare Azure Data Studio per eseguire la migrazione ad Azure.

Storage

L'elenco di controllo in questa sezione illustra le procedure consigliate per l'archiviazione per SQL Server in macchine virtuali di Azure.

  • Monitorare l'applicazione e determinare i requisiti di larghezza di banda e latenza di archiviazione per dati, log e tempdb file di SQL Server prima di scegliere il tipo di disco.
  • Se disponibile, configurare i tempdbfile di dati e di log nel volume SSD locale D: . L'estensione SQL IaaS Agent gestisce la cartella e le autorizzazioni necessarie al nuovo provisioning.
  • Per ottimizzare le prestazioni di archiviazione, pianificare le operazioni di I/O al secondo non memorizzate più elevate disponibili e usare la memorizzazione nella cache dei dati come funzionalità di prestazioni per le letture dei dati evitando il limite di macchine virtuali e dischi.
  • Quando si usano macchine virtuali SQL Server serie Ebdsv5 o Ebsv5 , usare SSD Premium v2 per ottenere prestazioni ottimali. È possibile distribuire la macchina virtuale di SQL Server con SSD Premium v2 usando il portale di Azure (attualmente in anteprima).
  • Prendere in considerazione l'uso della san elastica di Azure per i carichi di lavoro di SQL Server per migliorare l'efficienza dei costi a causa del consolidamento dell'archiviazione, delle prestazioni dinamiche condivise e della capacità di aumentare la velocità effettiva di archiviazione senza dover aggiornare una macchina virtuale.
  • Inserire dati, log e tempdb file in unità separate.
    • Per l'unità dati, usare dischi P30 e P40 Premium o di dimensioni inferiori per garantire la disponibilità del supporto della cache. Quando si usa la serie di macchine virtuali Ebdsv5, usare SSD Premium v2 che offre prestazioni migliori per i carichi di lavoro che richiedono un numero elevato di operazioni di I/O al secondo e velocità effettiva di I/O.
    • Per il piano di unità di log per la capacità e il test delle prestazioni rispetto ai costi durante la valutazione di dischi SSD Premium v2 o SSD Premium P30 - P80
    • Posizionare tempdb sul disco temporaneo (il disco temporaneo è temporaneo e il valore predefinito D:\è ) per la maggior parte dei carichi di lavoro di SQL Server che non fanno parte di un'istanza del cluster di failover dopo aver scelto le dimensioni ottimali della macchina virtuale.
      • Se la capacità dell'unità locale non è sufficiente per tempdb, valutare la possibilità di ridimensionare la macchina virtuale. Per altre informazioni, vedere Criteri di memorizzazione nella cache dei file di dati.
    • Per le istanze del cluster di failover (FCI) posizionare tempdb nella risorsa di archiviazione condivisa.
      • Se il carico di lavoro dell'istanza del cluster di failover dipende in larga misura dalle tempdb prestazioni del disco, come posizione tempdb di configurazione avanzata nell'unità SSD temporanea locale (predefinita D:\), che non fa parte dell'archiviazione dell'istanza del cluster di failover. Questa configurazione richiede il monitoraggio e l'azione personalizzati per assicurarsi che l'unità SSD temporanea locale (predefinita D:\) sia disponibile sempre, perché eventuali errori di questa unità non attiveranno l'azione dall'istanza del cluster di failover.
  • Eseguire lo striping di più dischi dati di Azure usando spazi di Archiviazione per aumentare la larghezza di banda di I/O delle operazioni di I/O fino ai limiti di IOPS e velocità effettiva della macchina virtuale di destinazione.
  • Impostare la memorizzazione nella cache dell'host in sola lettura per i dischi dei file di dati.
  • Impostare la memorizzazione nella cache dell'host su nessuno per i dischi dei file di log.
    • Non abilitare la memorizzazione nella cache di lettura/scrittura nei dischi che contengono file di log o dati di SQL Server.
    • Arrestare sempre il servizio SQL Server prima di modificare le impostazioni della cache del disco.
  • Per i carichi di lavoro di sviluppo e test e l'archiviazione dei backup a lungo termine è consigliabile usare l'archiviazione standard. Non è consigliabile usare HDD/SSD Standard per i carichi di lavoro di produzione.
  • Il bursting del disco basato sul credito (P1-P20) deve essere considerato solo per carichi di lavoro di sviluppo/test più piccoli e sistemi di reparto.
  • Per ottimizzare le prestazioni di archiviazione, pianificare le operazioni di I/O al secondo non memorizzate più elevate e usare la memorizzazione nella cache dei dati come funzionalità di prestazioni per le letture dei dati evitando al contempo il limite/limitazione delle richieste di macchine virtuali e dischi.
  • Formattare il disco dati per usare le dimensioni delle unità di allocazione da 64 KB per tutti i file di dati inseriti in un'unità diversa dall'unità temporanea D:\ (con un valore predefinito di 4 KB). Le macchine virtuali di SQL Server distribuite tramite Azure Marketplace sono dotate di dischi dati formattati con dimensioni dell'unità di allocazione e interleave per il pool di archiviazione impostato su 64 KB.
  • Configurare l'account di archiviazione nella stessa area della macchina virtuale di SQL Server.
  • Disabilitare l'archiviazione con ridondanza geografica di Azure (replica geografica) e usare l'archiviazione con ridondanza locale nell'account di archiviazione.
  • Abilitare la valutazione delle procedure consigliate di SQL per identificare i possibili problemi di prestazioni e valutare che la macchina virtuale di SQL Server sia configurata per seguire le procedure consigliate.
  • Esaminare e monitorare i limiti dei dischi e delle macchine virtuali usando le metriche di utilizzo di I/O Archiviazione.
  • Escludere i file di SQL Server dall'analisi software antivirus, inclusi file di dati, file di log e file di backup.

Sicurezza

L'elenco di controllo di questa sezione illustra le procedure consigliate per la sicurezza per SQL Server in macchine virtuali di Azure.

Le funzionalità e le funzionalità di SQL Server offrono un metodo di sicurezza a livello di dati ed è il modo in cui si ottiene una difesa approfondita a livello di infrastruttura per soluzioni basate sul cloud e ibride. Inoltre, con le misure di sicurezza di Azure, è possibile crittografare i dati sensibili, proteggere le macchine virtuali da virus e malware, proteggere il traffico di rete, identificare e rilevare le minacce, soddisfare i requisiti di conformità e fornisce un unico metodo per l'amministrazione e la creazione di report per qualsiasi esigenza di sicurezza nel cloud ibrido.

  • Usare Microsoft Defender per il cloud per valutare e intervenire per migliorare il comportamento di sicurezza dell'ambiente dati. Le funzionalità come Azure Advanced Threat Protection (ATP) possono essere sfruttate nei carichi di lavoro ibridi per migliorare la valutazione della sicurezza e offrire la possibilità di reagire ai rischi. La registrazione della macchina virtuale di SQL Server con l'estensione SQL IaaS Agent espone Microsoft Defender per il cloud valutazioni all'interno della risorsa macchina virtuale SQL del portale di Azure.
  • Usare Microsoft Defender per SQL per individuare e attenuare potenziali vulnerabilità del database, nonché rilevare attività anomale che potrebbero indicare una minaccia per l'istanza di SQL Server e il livello del database.
  • Valutazione della vulnerabilità fa parte di Microsoft Defender per SQL che consente di individuare e correggere potenziali rischi per l'ambiente SQL Server. Offre visibilità sullo stato di sicurezza e include passaggi interattivi per risolvere i problemi di sicurezza.
  • Usare le macchine virtuali riservate di Azure per rafforzare la protezione dei dati in uso e i dati inattivi rispetto all'accesso dell'operatore host. Le macchine virtuali riservate di Azure consentono di archiviare in modo sicuro i dati sensibili nel cloud e soddisfare requisiti di conformità rigorosi.
  • Se si usa SQL Server 2022, è consigliabile usare l'autenticazione Microsoft Entra per connettersi all'istanza di SQL Server.
  • Azure Advisor analizza la configurazione delle risorse e i dati di telemetria sull'utilizzo e quindi consiglia soluzioni che consentono di migliorare l'efficacia dei costi, le prestazioni, la disponibilità elevata e la sicurezza delle risorse di Azure. Sfruttare Azure Advisor a livello di macchina virtuale, gruppo di risorse o sottoscrizione per identificare e applicare le procedure consigliate per ottimizzare le distribuzioni di Azure.
  • Usare Crittografia dischi di Azure quando le esigenze di conformità e sicurezza richiedono di crittografare i dati end-to-end usando le chiavi di crittografia, inclusa la crittografia del disco temporaneo (collegato localmente).
  • I dischi gestiti vengono crittografati inattivi per impostazione predefinita usando crittografia del servizio Archiviazione di Azure, in cui le chiavi di crittografia sono chiavi gestite da Microsoft archiviate in Azure.
  • Per un confronto delle opzioni di crittografia dischi gestiti, vedere il grafico di confronto della crittografia dei dischi gestiti
  • Le porte di gestione devono essere chiuse nelle macchine virtuali: le porte di gestione remota aperte espongono la macchina virtuale a un alto livello di rischio da attacchi basati su Internet. per sottrarre le credenziali e ottenere l'accesso di amministratore alla macchina virtuale.
  • Attivare l'accesso JIT (Just-In-Time) per le macchine virtuali di Azure
  • Usare Azure Bastion su Remote Desktop Protocol (RDP).
  • Bloccare le porte e consentire solo il traffico dell'applicazione necessario usando Firewall di Azure che è un firewall gestito come servizio (FaaS) che concede/nega l'accesso al server in base all'indirizzo IP di origine.
  • Usare i gruppi di sicurezza di rete (NSG) per filtrare il traffico di rete da e verso le risorse di Azure in Azure Rete virtuale
  • Sfruttare i gruppi di sicurezza delle applicazioni per raggruppare i server con requisiti di filtro delle porte simili, con funzioni simili, ad esempio server Web e server di database.
  • Per i server Web e applicazioni sfruttano la protezione DDoS (Distributed Denial of Service). Gli attacchi DDoS sono progettati per sovraccaricare ed esaurire le risorse di rete, rendendo le app lente o non rispondenti. È comune che gli attacchi DDos vengano destinati alle interfacce utente. La protezione DDoS di Azure sanifica il traffico di rete indesiderato, prima che influisca sulla disponibilità del servizio
  • Usare le estensioni della macchina virtuale per risolvere gli attacchi antimalware, lo stato desiderato, il rilevamento delle minacce, la prevenzione e la correzione per risolvere le minacce a livello di sistema operativo, computer e rete:
  • Usare Criteri di Azure per creare regole business che possono essere applicate all'ambiente. Criteri di Azure valuta le risorse di Azure confrontando le proprietà di tali risorse rispetto alle regole definite in formato JSON.
  • Azure Blueprints consente agli architetti del cloud e ai gruppi centrali del settore IT di definire un set ripetibile di risorse di Azure per implementare e rispettare gli standard, i modelli e i requisiti di un'organizzazione. I progetti di Azure sono diversi da Criteri di Azure.

caratteristiche di SQL Server

Di seguito è riportato un rapido elenco di controllo delle procedure consigliate per le impostazioni di configurazione di SQL Server durante l'esecuzione delle istanze di SQL Server in una macchina virtuale di Azure nell'ambiente di produzione:

di Microsoft Azure

Di seguito è riportato un rapido elenco di controllo delle procedure consigliate per indicazioni specifiche di Azure durante l'esecuzione di SQL Server in una macchina virtuale di Azure:

Configurazione HADR

L'elenco di controllo in questa sezione illustra le procedure consigliate per HADR per SQL Server in macchine virtuali di Azure.

Funzionalità di disponibilità elevata e ripristino di emergenza( HADR), ad esempio il gruppo di disponibilità AlwaysOn e l'istanza del cluster di failover si basano sulla tecnologia del cluster di failover di Windows Server sottostante. Esaminare le procedure consigliate per modificare le impostazioni hadr per supportare meglio l'ambiente cloud.

Per il cluster Windows, prendere in considerazione queste procedure consigliate:

  • Distribuire le macchine virtuali di SQL Server in più subnet, quando possibile, per evitare la dipendenza da un'istanza di Azure Load Balancer o da un nome di rete distribuita (DNN) per instradare il traffico alla soluzione HADR.
  • Modificare il cluster in parametri meno aggressivi per evitare interruzioni impreviste da errori di rete temporanei o manutenzione della piattaforma Azure. Per altre informazioni, vedere Impostazioni heartbeat e soglia. Per Windows Server 2012 e versioni successive, usare i valori consigliati seguenti:
    • SameSubnetDelay: 1 secondo
    • SameSubnetThreshold: 40 heartbeat
    • CrossSubnetDelay: 1 secondo
    • CrossSubnetThreshold: 40 heartbeat
  • Inserire le macchine virtuali in un set di disponibilità o in zone di disponibilità diverse. Per altre informazioni, vedere Impostazioni di disponibilità delle macchine virtuali.
  • Usare una singola scheda di interfaccia di rete per ogni nodo del cluster.
  • Configurare il voto quorum del cluster per l'uso di 3 o più voti dispari. Non assegnare voti alle aree di ripristino di emergenza.
  • Monitorare attentamente i limiti delle risorse per evitare riavvii imprevisti o failover a causa di vincoli di risorse.
    • Assicurarsi che il sistema operativo, i driver e SQL Server siano nelle build più recenti.
    • Ottimizzare le prestazioni per SQL Server in macchine virtuali di Azure. Per altre informazioni, vedere le altre sezioni di questo articolo.
    • Ridurre o distribuire il carico di lavoro per evitare limiti di risorse.
    • Passare a una macchina virtuale o a un disco con limiti più elevati per evitare vincoli.

Per il gruppo di disponibilità di SQL Server o l'istanza del cluster di failover, prendere in considerazione queste procedure consigliate:

  • Se si verificano frequenti errori imprevisti, seguire le procedure consigliate per le prestazioni descritte nel resto di questo articolo.
  • Se l'ottimizzazione delle prestazioni delle macchine virtuali di SQL Server non risolve i failover imprevisti, è consigliabile ridurre il monitoraggio per il gruppo di disponibilità o l'istanza del cluster di failover. Tuttavia, questa operazione potrebbe non risolvere l'origine sottostante del problema e potrebbe mascherare i sintomi riducendo la probabilità di errore. Potrebbe essere comunque necessario analizzare e risolvere la causa radice sottostante. Per Windows Server 2012 o versione successiva, usare i valori consigliati seguenti:
    • Timeout lease: usare questa equazione per calcolare il valore massimo di timeout lease:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Inizia con 40 secondi. Se si usano i valori e più SameSubnetThresholdSameSubnetDelay flessibili consigliati in precedenza, non superare 80 secondi per il valore di timeout del lease.
    • Numero massimo di errori in un periodo specificato: impostare questo valore su 6.
  • Quando si usano il nome di rete virtuale (VNN) e azure Load Balancer per connettersi alla soluzione HADR, specificare MultiSubnetFailover = true nella stringa di connessione, anche se il cluster si estende solo su una subnet.
    • Se il client non supporta MultiSubnetFailover = True potrebbe essere necessario impostare RegisterAllProvidersIP = 0 e HostRecordTTL = 300 memorizzare nella cache le credenziali client per durate più brevi. Tuttavia, questa operazione può causare query aggiuntive al server DNS.
  • Per connettersi alla soluzione HADR usando il nome di rete distribuita, tenere presente quanto segue:
    • È necessario usare un driver client che supporta MultiSubnetFailover = Truee questo parametro deve trovarsi nella stringa di connessione.
    • Usare una porta DNN univoca nel stringa di connessione durante la connessione al listener DNN per un gruppo di disponibilità.
  • Usare un stringa di connessione di mirroring del database per un gruppo di disponibilità di base per ignorare la necessità di un servizio di bilanciamento del carico o DNN.
  • Convalidare le dimensioni del settore dei dischi rigidi virtuali prima di distribuire la soluzione a disponibilità elevata per evitare un I/O non allineato. Per altre informazioni, vedere KB3009974 .
  • Se il motore di database di SQL Server, il listener del gruppo di disponibilità AlwaysOn o il probe di integrità dell'istanza del cluster di failover sono configurati per usare una porta compresa tra 49.152 e 65.536 (intervallo di porte dinamiche predefinito per TCP/IP), aggiungere un'esclusione per ogni porta. In questo modo, gli altri sistemi non possono essere assegnati dinamicamente alla stessa porta. L'esempio seguente crea un'esclusione per la porta 59999:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Risoluzione dei problemi di prestazioni

Di seguito è riportato un elenco di risorse che consentono di risolvere ulteriormente i problemi di prestazioni di SQL Server.

Valutare l'abilitazione della valutazione SQL per SQL Server in macchine virtuali di Azure.

Esaminare altri articoli relativi alle macchine virtuali di SQL Server in Panoramica di SQL Server in Macchine virtuali di Azure. In caso di domande sulle macchine virtuali SQL Server, vedere le domande frequenti.