Controlelijst: best practices voor prestaties voor SQL Server op Azure-VM's

Van toepassing op: SQL Server op Azure VM

Dit artikel bevat een snelle controlelijst als een reeks aanbevolen procedures en richtlijnen voor het optimaliseren van de prestaties van uw SQL Server op Azure Virtual Machines (VM's).

Zie de andere artikelen in deze reeks voor uitgebreide informatie: VM-grootte, opslag, beveiliging, HADR-configuratie, basislijn verzamelen.

Schakel SQL Assessment in voor SQL Server op Azure-VM's en uw SQL Server wordt geëvalueerd op basis van bekende aanbevolen procedures met resultaten op de beheerpagina van de SQL-VM van Azure Portal.

Voor video's over de nieuwste functies voor het optimaliseren van de prestaties van SQL Server-VM's en het automatiseren van beheer, raadpleegt u de volgende video's over weergegeven gegevens:

Overzicht

Tijdens het uitvoeren van SQL Server op virtuele Azure-machines kunt u dezelfde opties voor het afstemmen van databaseprestaties gebruiken die van toepassing zijn op SQL Server in on-premises serveromgevingen. De prestaties van een relationele database in een openbare cloud zijn echter afhankelijk van veel factoren, zoals de grootte van een virtuele machine en de configuratie van de gegevensschijven.

Er is meestal een afweging tussen optimaliseren voor kosten en optimaliseren voor prestaties. Deze reeks aanbevolen procedures voor prestaties is gericht op het verkrijgen van de beste prestaties voor SQL Server op virtuele Azure-machines. Als uw workload minder veeleisend is, hebt u mogelijk niet elke aanbevolen optimalisatie nodig. Houd rekening met uw prestatiebehoeften, kosten en workloadpatronen wanneer u deze aanbevelingen evalueert.

VM-grootte

De controlelijst in deze sectie bevat de aanbevolen procedures voor VM-grootten voor SQL Server op Azure-VM's.

  • De nieuwe Ebdsv5-serie biedt de hoogste I/O-doorvoer-naar-vCore-verhouding in Azure, samen met een geheugen-naar-vCore-verhouding van 8. Deze reeks biedt de beste prijs-prestaties voor SQL Server-workloads op Azure-VM's. Overweeg deze reeks eerst voor de meeste SQL Server-workloads.
  • Gebruik VM-grootten met 4 of meer vCPU's, zoals de E4ds_v5 of hoger.
  • Voor de beste prestaties van SQL Server-workloads gebruikt u VM-grootten die voor geheugen zijn geoptimaliseerd.
  • De Edsv5-serie , de M-, en de Mv2-serie bieden de optimale geheugen-naar-vCore-verhouding die vereist is voor OLTP-workloads.
  • De VM's uit de M-serie bieden de hoogste geheugen-naar-vCore-verhouding in Azure. Houd rekening met deze VM's voor bedrijfskritieke workloads en datawarehouse-workloads.
  • Gebruik Azure Marketplace-installatiekopieën om uw virtuele SQL Server-machines te implementeren, omdat de SQL Server-instellingen en opslagopties zijn geconfigureerd voor optimale prestaties.
  • Verzamel de prestatiekenmerken van de doelworkload en gebruik deze om de juiste VM-grootte voor uw bedrijf te bepalen.
  • Gebruik de aanbevelingshulpprogramma's voor Data Migration Assistant en SKU om de juiste VM-grootte te vinden voor uw bestaande SQL Server-workload.
  • Gebruik Azure Data Studio om te migreren naar Azure.

Storage

De controlelijst in deze sectie bevat informatie over de aanbevolen procedures voor opslag voor SQL Server op Azure-VM's.

  • Bewaak de toepassing en bepaal de vereisten voor opslagbandbreedte en latentie voor SQL Server-gegevens, logboeken en tempdb bestanden voordat u het schijftype kiest.
  • Configureer indien beschikbaar de tempdbgegevens en logboekbestanden op het D: lokale SSD-volume. De SQL IaaS Agent-extensie verwerkt de map en machtigingen die nodig zijn bij het opnieuw inrichten.
  • Als u de opslagprestaties wilt optimaliseren, plant u de hoogst beschikbare IOPS zonder cache en gebruikt u gegevenscaching als prestatiefunctie voor gegevensleesbewerkingen en voor het voorkomen van limieten voor virtuele machines en schijven.
  • Overweeg het gebruik van Azure Elastic SAN voor SQL Server-workloads voor betere kostenefficiëntie vanwege opslagconsolidatie, gedeelde dynamische prestaties en de mogelijkheid om een hogere opslagdoorvoer te stimuleren zonder een vm te hoeven upgraden.
  • Plaats gegevens, logboeken en tempdb bestanden op afzonderlijke stations.
    • Voor het gegevensstation gebruikt u Premium P30- en P40- of kleinere schijven om de beschikbaarheid van cacheondersteuning te garanderen. Wanneer u de Ebdsv5-VM-serie gebruikt, gebruikt u Premium SSD v2 die betere prijsprestaties biedt voor workloads waarvoor een hoge IOPS- en I/O-doorvoer is vereist.
    • Voor het logboekstationplan voor capaciteit en testprestaties versus kosten tijdens het evalueren van Premium SSD v2 of Premium SSD P30 - P80-schijven
      • Als de opslaglatentie van submilliseconden is vereist, gebruikt u Premium SSD v2 of Azure Ultra Disks voor het transactielogboek.
      • Voor implementaties van virtuele machines uit de M-serie kunt u overwegen om schrijfversneller te gebruiken met behulp van Azure Ultra Disks.
    • Plaats tempdb op de tijdelijke schijf (de tijdelijke schijf is kortstondig en wordt standaard ingesteld D:\op ) voor de meeste SQL Server-workloads die geen deel uitmaken van een failoverclusterexemplaar (FCI) nadat u de optimale VM-grootte hebt gekozen.
      • Als de capaciteit van het lokale station niet voldoende tempdbis, kunt u overwegen om de grootte van de VIRTUELE machine te wijzigen. Zie Cachebeleid voor gegevensbestanden voor meer informatie.
    • Voor FCI-locatie tempdb in de gedeelde opslag.
      • Als de FCI-werkbelasting sterk afhankelijk is van tempdb schijfprestaties, is dit een geavanceerde configuratieplaats tempdb op het lokale tijdelijke SSD-station (standaard D:\) dat geen deel uitmaakt van FCI-opslag. Deze configuratie heeft aangepaste bewaking en actie nodig om ervoor te zorgen dat het lokale tijdelijke SSD-station (standaard D:\) altijd beschikbaar is, omdat eventuele fouten van dit station geen actie van FCI activeren.
  • Streep meerdere Azure-gegevensschijven met behulp van Opslagruimten om de I/O-bandbreedte te verhogen tot de IOPS- en doorvoerlimieten van de doel-VM.
  • Stel hostcaching in opalleen-lezen voor gegevensbestandsschijven.
  • Stel hostcaching in opgeen voor logboekbestandsschijven.
    • Schakel lees-/schrijfcache niet in op schijven die SQL Server-gegevens of logboekbestanden bevatten.
    • Stop de SQL Server-service altijd voordat u de cache-instellingen van uw schijf wijzigt.
  • Voor ontwikkelings- en testworkloads en archivering van back-ups op lange termijn kunt u overwegen om standaardopslag te gebruiken. Het wordt niet aanbevolen om Standard HDD/SSD te gebruiken voor productieworkloads.
  • Disk Bursting (P1-P20) op basis van tegoed mag alleen worden overwogen voor kleinere ontwikkel-/testworkloads en afdelingssystemen.
  • Als u de opslagprestaties wilt optimaliseren, plant u de hoogst beschikbare IOPS zonder cache en gebruikt u gegevenscaching als prestatiefunctie voor gegevensleesbewerkingen en vermijdt u het beperken/beperken van virtuele machines en schijven.
  • Maak de gegevensschijf op om de grootte van de toewijzingseenheid van 64 kB te gebruiken voor alle gegevensbestanden die op een ander station zijn geplaatst dan het tijdelijke D:\ station (met een standaardwaarde van 4 kB). SQL Server-VM's die zijn geïmplementeerd via Azure Marketplace worden geleverd met gegevensschijven die zijn geformatteerd met de grootte van de toewijzingseenheid en interleave voor de opslaggroep die is ingesteld op 64 kB.
  • Configureer het opslagaccount in dezelfde regio als de SQL Server-VM.
  • Schakel geografisch redundante Azure-opslag (geo-replicatie) uit en gebruik LRS (lokale redundante opslag) in het opslagaccount.
  • Schakel de SQL Best Practices Assessment in om mogelijke prestatieproblemen te identificeren en te evalueren of uw SQL Server-VM is geconfigureerd om de aanbevolen procedures te volgen.
  • Controleer en bewaak schijf- en VM-limieten met behulp van metrische gegevens over opslag-IO-gebruik.
  • Sluit SQL Server-bestanden uit van het scannen van antivirussoftware, inclusief gegevensbestanden, logboekbestanden en back-upbestanden.

Beveiliging

De controlelijst in deze sectie bevat informatie over de aanbevolen beveiligingsprocedures voor SQL Server op Azure-VM's.

SQL Server-functies en -mogelijkheden bieden een beveiligingsmethode op gegevensniveau en hoe u diepgaande verdediging bereikt op het niveau van de infrastructuur voor cloud- en hybride oplossingen. Bovendien is het met Azure-beveiligingsmaatregelen mogelijk om uw gevoelige gegevens te versleutelen, virtuele machines te beschermen tegen virussen en malware, netwerkverkeer te beveiligen, bedreigingen te identificeren en te detecteren, te voldoen aan de nalevingsvereisten en één methode te bieden voor beheer en rapportage voor elke beveiligingsbehoefte in de hybride cloud.

  • Gebruik Microsoft Defender voor Cloud om de beveiligingspostuur van uw gegevensomgeving te evalueren en te ondernemen. Mogelijkheden zoals Azure Advanced Threat Protection (ATP) kunnen worden gebruikt voor uw hybride workloads om de beveiligingsevaluatie te verbeteren en de mogelijkheid te bieden om te reageren op risico's. Als u uw SQL Server-VM registreert met de SQL IaaS Agent-extensie, worden Microsoft Defender voor Cloud evaluaties uitgevoerd binnen de SQL-resource van de virtuele MACHINE van Azure Portal.
  • Gebruik Microsoft Defender voor SQL om potentiële beveiligingsproblemen in databases te detecteren en te beperken, en om afwijkende activiteiten te detecteren die kunnen duiden op een bedreiging voor uw SQL Server-exemplaar en -databaselaag.
  • Evaluatie van beveiligingsproblemen maakt deel uit van Microsoft Defender voor SQL die potentiële risico's voor uw SQL Server-omgeving kan detecteren en oplossen. Het biedt inzicht in uw beveiligingsstatus en bevat bruikbare stappen om beveiligingsproblemen op te lossen.
  • Gebruik Azure Confidential-VM's om de beveiliging van uw gegevens in gebruik en data-at-rest te versterken tegen hostoperatortoegang. Met Azure Confidential VM's kunt u uw gevoelige gegevens in de cloud opslaan en voldoen aan strikte nalevingsvereisten.
  • Als u sql Server 2022 gebruikt, kunt u microsoft Entra-verificatie gebruiken om verbinding te maken met uw exemplaar van SQL Server.
  • Azure Advisor analyseert uw resourceconfiguratie en gebruikstelemetrie en raadt vervolgens oplossingen aan waarmee u de kosteneffectiviteit, prestaties, hoge beschikbaarheid en beveiliging van uw Azure-resources kunt verbeteren. Maak gebruik van Azure Advisor op het niveau van de virtuele machine, resourcegroep of abonnement om aanbevolen procedures te identificeren en toe te passen om uw Azure-implementaties te optimaliseren.
  • Gebruik Azure Disk Encryption wanneer uw nalevings- en beveiligingsbehoeften vereisen dat u de gegevens end-to-end versleutelt met behulp van uw versleutelingssleutels, inclusief versleuteling van de tijdelijke schijf (lokaal gekoppelde tijdelijke schijf).
  • Managed Disks worden standaard versleuteld met behulp van Azure Storage Service Encryption, waarbij de versleutelingssleutels door Microsoft beheerde sleutels zijn opgeslagen in Azure.
  • Raadpleeg de vergelijkingsgrafiek voor beheerde schijfversleuteling voor een vergelijking van de opties voor beheerde schijfversleuteling
  • Beheerpoorten moeten worden gesloten op uw virtuele machines: open poorten voor extern beheer die uw VIRTUELE machine blootstellen aan een hoog risico op internetaanvallen. Deze aanvallen proberen de aanmeldingsgegevens voor de beheerderstoegang tot de computer te verkrijgen.
  • Just-In-Time-toegang (JIT) inschakelen voor virtuele Azure-machines
  • Azure Bastion gebruiken via Remote Desktop Protocol (RDP).
  • Vergrendel poorten en sta alleen het benodigde toepassingsverkeer toe met behulp van Azure Firewall . Dit is een beheerde firewall als een service (FaaS) die servertoegang verleent/weigert op basis van het oorspronkelijke IP-adres.
  • Netwerkbeveiligingsgroepen (NSG's) gebruiken om netwerkverkeer naar en van Azure-resources in virtuele Azure-netwerken te filteren
  • Maak gebruik van toepassingsbeveiligingsgroepen om servers te groeperen met vergelijkbare poortfiltervereisten, met vergelijkbare functies, zoals webservers en databaseservers.
  • Voor web- en toepassingsservers wordt gebruikgemaakt van DDoS-beveiliging (Azure Distributed Denial of Service). DDoS-aanvallen zijn ontworpen om netwerkresources te overbelasten en uit te putten, waardoor apps langzaam of niet reageren. Het is gebruikelijk dat DDos-aanvallen zich richten op gebruikersinterfaces. Met Azure DDoS-beveiliging wordt ongewenst netwerkverkeer opgeschoond voordat dit van invloed is op de beschikbaarheid van de service
  • Gebruik VM-extensies om antimalware, gewenste status, detectie van bedreigingen, preventie en herstel aan te pakken om bedreigingen op besturingssysteem-, computer- en netwerkniveaus aan te pakken:
  • Gebruik Azure Policy om bedrijfsregels te maken die op uw omgeving kunnen worden toegepast. Azure Policies evalueert Azure-resources door de eigenschappen van deze resources te vergelijken met regels die zijn gedefinieerd in JSON-indeling.
  • Azure Blueprints stelt cloudarchitecten en centrale IT-groepen in staat om een ​​herhaalbare set Azure-resources te definiëren die voldoet aan de normen, patronen en vereisten van een organisatie en deze implementeert. Azure Blueprints verschillen van Azure-beleid.

SQL Server-functies

Hier volgt een snelle controlelijst met aanbevolen procedures voor sql Server-configuratie-instellingen bij het uitvoeren van uw SQL Server-exemplaren op een virtuele Azure-machine in productie:

Azure-functies

Hier volgt een snelle controlelijst met aanbevolen procedures voor azure-specifieke richtlijnen bij het uitvoeren van uw SQL Server op Azure VM:

HADR-configuratie

De controlelijst in deze sectie bevat de best practices voor HADR voor SQL Server op Azure-VM's.

Functies voor hoge beschikbaarheid en herstel na noodgevallen (HADR), zoals de AlwaysOn-beschikbaarheidsgroep en het failoverclusterexemplaren , zijn afhankelijk van onderliggende Windows Server Failover Cluster-technologie . Bekijk de aanbevolen procedures voor het wijzigen van uw HADR-instellingen om de cloudomgeving beter te ondersteunen.

Houd rekening met de volgende aanbevolen procedures voor uw Windows-cluster:

  • Implementeer uw SQL Server-VM's waar mogelijk naar meerdere subnetten om de afhankelijkheid van een Azure Load Balancer of een gedistribueerde netwerknaam (DNN) te voorkomen om verkeer naar uw HADR-oplossing te routeren.
  • Wijzig het cluster in minder agressieve parameters om onverwachte storingen te voorkomen bij tijdelijke netwerkfouten of onderhoud van Het Azure-platform. Zie heartbeat- en drempelwaarde-instellingen voor meer informatie. Gebruik voor Windows Server 2012 en hoger de volgende aanbevolen waarden:
    • SameSubnetDelay: 1 seconde
    • SameSubnetThreshold: 40 heartbeats
    • CrossSubnetDelay: 1 seconde
    • CrossSubnetThreshold: 40 heartbeats
  • Plaats uw VM's in een beschikbaarheidsset of verschillende beschikbaarheidszones. Zie beschikbaarheidsinstellingen voor VM's voor meer informatie.
  • Gebruik één NIC per clusterknooppunt.
  • Configureer clusterquorumstemmen om 3 of meer oneven stemmen te gebruiken. Wijs geen stemmen toe aan dr-regio's.
  • Bewaak resourcelimieten zorgvuldig om onverwachte herstarts of failovers te voorkomen vanwege resourcebeperkingen.
    • Zorg ervoor dat uw besturingssysteem, stuurprogramma's en SQL Server de nieuwste versies hebben.
    • Optimaliseer de prestaties voor SQL Server op Azure-VM's. Bekijk de andere secties in dit artikel voor meer informatie.
    • Verminder of verspreid de workload om resourcelimieten te voorkomen.
    • Ga naar een virtuele machine of schijf waarvoor zijn hogere limieten gelden om beperkingen te voorkomen.

Houd rekening met de volgende aanbevolen procedures voor uw SQL Server-beschikbaarheidsgroep of failoverclusterexemplaren:

  • Als u regelmatig onverwachte fouten ondervindt, volgt u de best practices voor prestaties die in de rest van dit artikel worden beschreven.
  • Als het optimaliseren van de prestaties van DE SQL Server-VM uw onverwachte failovers niet oplost, kunt u overwegen de bewaking voor de beschikbaarheidsgroep of het failoverclusterexemplaren te versoepelen. Als u dit doet, kan dit echter niet de onderliggende oorzaak van het probleem oplossen en symptomen maskeren door de kans op fouten te verminderen. Mogelijk moet u de onderliggende hoofdoorzaak nog steeds onderzoeken en aanpakken. Gebruik voor Windows Server 2012 of hoger de volgende aanbevolen waarden:
    • Time-out voor lease: gebruik deze vergelijking om de maximale time-outwaarde voor lease te berekenen:
      Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
      Begin met 40 seconden. Als u de eerder aanbevolen ontspannen SameSubnetThreshold waarden SameSubnetDelay gebruikt, mag u niet langer zijn dan 80 seconden voor de time-outwaarde van de lease.
    • Maximum aantal fouten in een opgegeven periode: stel deze waarde in op 6.
  • Wanneer u de naam van het virtuele netwerk (VNN) en een Azure Load Balancer gebruikt om verbinding te maken met uw HADR-oplossing, geeft u MultiSubnetFailover = true dit op in de verbindingsreeks, zelfs als uw cluster slechts één subnet omvat.
    • Als de client geen ondersteuning biedt MultiSubnetFailover = True , moet u mogelijk de clientreferenties voor kortere tijd instellen RegisterAllProvidersIP = 0 en HostRecordTTL = 300 in de cache opslaan. Dit kan echter leiden tot extra query's op de DNS-server.
  • Als u verbinding wilt maken met uw HADR-oplossing met behulp van de DNN (Distributed Network Name), kunt u het volgende overwegen:
    • U moet een clientstuurprogramma gebruiken dat ondersteuning biedt MultiSubnetFailover = Trueen deze parameter moet zich in de verbindingsreeks.
    • Gebruik een unieke DNN-poort in de verbindingsreeks wanneer u verbinding maakt met de DNN-listener voor een beschikbaarheidsgroep.
  • Gebruik een databasespiegeling verbindingsreeks voor een eenvoudige beschikbaarheidsgroep om de noodzaak van een load balancer of DNN te omzeilen.
  • Valideer de sectorgrootte van uw VHD's voordat u uw oplossing voor hoge beschikbaarheid implementeert om te voorkomen dat de I/Os verkeerd is uitgelijnd. Zie KB3009974 voor meer informatie.
  • Als de SQL Server-database-engine, alwayson-beschikbaarheidsgroeplistener of statustest van het failoverclusterexemplaren zijn geconfigureerd voor het gebruik van een poort tussen 49.152 en 65.536 (het standaard dynamische poortbereik voor TCP/IP), voegt u een uitsluiting toe voor elke poort. Als u dit doet, voorkomt u dat andere systemen dynamisch dezelfde poort worden toegewezen. In het volgende voorbeeld wordt een uitsluiting voor poort 59999 gemaakt:
    netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

Het oplossen van prestaties

Hier volgt een lijst met resources waarmee u prestatieproblemen met SQL Server verder kunt oplossen.

Overweeg sql-evaluatie in te schakelen voor SQL Server op Azure-VM's.

Bekijk andere artikelen over virtuele SQL Server-machines in SQL Server op Azure Virtual Machines Overview. Als u vragen hebt over virtuele machines met SQL Server, raadpleegt u Veelgestelde vragen.