Controlelijst: Best practices voor SQL Server azure-VM's
VAN TOEPASSING OP:
SQL Server op virtuele Azure-machine
Dit artikel bevat een snelle controlelijst als een reeks best practices 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: Checklist, VM-grootte, Storage, Beveiliging, HADR-configuratie, Basislijn verzamelen.
Schakel SQL Assessment in voor SQL Server op Azure-VM's. Uw SQL Server wordt geëvalueerd op basis van bekende best practices en resultaten die worden weergegeven op de SQL-VM-beheerpagina van de Azure Portal.
Overzicht
Terwijl u SQL Server in Azure Virtual Machines, kunt u dezelfde afstemmingsopties voor databaseprestaties blijven 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 doorgaans een balans tussen optimaliseren voor kosten en optimaliseren voor prestaties. Deze reeks best practices voor prestaties is gericht op het verkrijgen van de beste prestaties voor SQL Server in Azure Virtual Machines. Als uw workload minder veeleisende is, hebt u mogelijk niet elke aanbevolen optimalisatie nodig. Houd rekening met uw prestatiebehoeften, kosten en workloadpatronen bij het evalueren van deze aanbevelingen.
VM-grootte
Hier volgt een snelle controlelijst met best practices voor VM-grootte voor het uitvoeren van uw SQL Server azure-VM:
- Gebruik VM-grootten met 4 of meer vCPU's, zoals de Standard_M8-4 ms,de E4ds_v4of de DS12_v2 of hoger.
- Voor de beste prestaties van SQL Server-workloads gebruikt u VM-grootten die voor geheugen zijn geoptimaliseerd.
- De DSv2-serie 11-15, Edsv4, de M-en de Mv2-serie bieden de optimale geheugen-naar-vCore-verhouding die vereist is voor OLTP-workloads. Beide VM's uit de M-serie bieden de hoogste geheugen-naar-vCore-verhouding die vereist is voor essentiële workloads en zijn ook ideaal voor datawarehouse-workloads.
- Overweeg een hogere geheugen-naar-vCore-verhouding voor essentiële workloads en datawarehouse-workloads.
- Gebruik de Azure Virtual Machine Marketplace-afbeeldingen als de SQL Server instellingen en opslagopties zijn geconfigureerd voor optimale SQL Server prestaties.
- Verzamel de prestatiekenmerken van de doelworkload en gebruik deze om de juiste VM-grootte voor uw bedrijf te bepalen.
- Gebruik het hulpprogramma voor Migration Assistant SKU-aanbeveling om de juiste VM-grootte voor uw bestaande SQL Server vinden.
Zie de uitgebreide best practices voor VM-grootte voor meer informatie.
Storage
Hier volgt een snelle controlelijst met best practices voor opslagconfiguratie voor het uitvoeren van uw SQL Server azure-VM:
- Controleer de toepassing en bepaal de vereisten voor opslagbandbreedte en -latentie SQL Server gegevens-, logboek- en tempdb-bestanden voordat u het schijftype kiest.
- Als u de opslagprestaties wilt optimaliseren, moet u de hoogste niet-gecachede IOPS plannen en gegevenscacheding gebruiken als prestatiefunctie voor het lezen van gegevens, terwijl u tegelijkertijd limieten/beperkingen voor virtuele machines en schijven vermijdt.
- Plaats gegevens-, logboek- en tempdb-bestanden op afzonderlijke stations.
- Gebruik voor het gegevensstation alleen Premium P30- en P40-schijven om de beschikbaarheid van cacheondersteuning te garanderen
- Voor het logboekstationplan voor capaciteit en testprestaties versus kosten tijdens het evalueren van de Premium P30 - P80-schijven.
- Als opslaglatentie van minder dan een seconde is vereist, gebruikt u Azure Ultra Disks voor het transactielogboek.
- Voor implementaties van virtuele machines uit de M-serie Write Accelerator over het gebruik van Azure Ultra Disks.
- Plaats tempdb op het lokale tijdelijke SSD-station (standaard ) voor de meeste SQL Server workloads na het
D:\kiezen van de optimale VM-grootte.- Als de capaciteit van het lokale station niet voldoende is voor tempdb, kunt u overwegen om de VM te vergroten. Zie Beleidsregels voor gegevensbestands caching voor meer informatie.
- Stripe meerdere Azure-gegevensschijven met behulp Opslagruimten I/O-bandbreedte te verhogen tot de IOPS- en doorvoerlimieten van de doel-virtuele machine.
- Stel host caching in op alleen-lezen voor gegevensbestandsschijven.
- Stel host caching in op geen voor logboekbestandsschijven.
- Lees-/schrijf caching niet inschakelen op schijven die SQL Server bevatten.
- Stop altijd de SQL Server voordat u de cache-instellingen van uw schijf verandert.
- Overweeg het gebruik van standaardopslag voor ontwikkelings- en testworkloads. Het wordt afgeraden om een Standard - HDD/SDD te gebruiken voor productieworkloads.
- Op tegoed gebaseerde schijf bursting (P1-P20) moet alleen worden overwogen voor kleinere werkbelastingen voor ontwikkelen/testen en afdelingssystemen.
- Het opslagaccount inrichten in dezelfde regio als de SQL Server VM.
- Schakel geografisch redundante Azure-opslag (geo-replicatie) uit en gebruik LRS (lokaal redundante opslag) in het opslagaccount.
- Maak uw gegevensschijf zo op dat deze een grootte van 64 kB gebruikt voor alle gegevensbestanden die op een ander station zijn geplaatst dan het tijdelijke station (met een standaardgrootte
D:\van 4 kB). SQL Server VM's die zijn geïmplementeerd via Azure Marketplace worden er gegevensschijven met de grootte van de toewijzingseenheid en interleave voor de opslaggroep op 64 kB ingesteld.
Zie de uitgebreide Storage best practices voor meer informatie.
SQL Server functies
Hier volgt een snelle controlelijst met best practices voor SQL Server configuratie-instellingen bij het uitvoeren van uw SQL Server-exemplaren in een virtuele Azure-machine in productie:
- Schakel waar nodig compressie van databasepagina's in.
- Schakel back-upcompressie in.
- Directe bestands initialisatie voor gegevensbestanden inschakelen.
- Beperk de automatische groei van de database.
- Schakel autoshrink van de database uit.
- Schakel automatischsluiten van de database uit.
- Verplaats alle databases naar gegevensschijven, inclusief systeemdatabases.
- Verplaats SQL Server foutenlogboek en traceer bestandsdirecties naar gegevensschijven.
- Standaardlocaties voor back-up- en databasebestanden configureren.
- Stel de maximale SQL Server geheugenlimiet in om voldoende geheugen over te laten voor het besturingssysteem. (Gebruik Geheugen\Beschikbare bytes om de geheugentoestand van het besturingssysteem te bewaken.
- Schakel vergrendelingspagina's in het geheugen in.
- Optimalisatie inschakelen voor ad-hoc-workloads voor oltp-zware omgevingen.
- Evalueer en pas de meest recente cumulatieve updates toe voor de geïnstalleerde versies van SQL Server.
- Schakel Query Store in voor alle SQL Server databases volgens de best practices.
- Schakel automatisch afstemmen in op bedrijfskritieke toepassingsdatabases.
- Zorg ervoor dat alle tempdb-best practices worden gevolgd.
- Plaats tempdb op de kortstondige D:/ Station.
- Gebruik het aanbevolen aantal bestanden, metbehulp van meerdere tempdb-gegevensbestanden, beginnend met één bestand per kern, maximaal acht bestanden.
- Plan SQL Server agenttaken om DBCC CHECKDBuit te voeren, index opnieuw teorganiseren, indexenopnieuw te bouwen en statistische taken bij te werken.
- Controleer en beheer de status en grootte van het SQL Server transactielogboekbestand.
- Maak gebruik van nieuwe SQL Server die beschikbaar zijn voor de versie die wordt gebruikt.
- Houd rekening met de verschillen in ondersteunde functies tussen de edities die u overweegt te implementeren.
Azure-functies
Hier volgt een snelle controlelijst met best practices voor specifieke Azure-richtlijnen bij het uitvoeren van SQL Server azure-VM:
- Registreer u bij de SQL IaaS-agentextensie om een aantal functievoordelen te ontgrendelen.
- Gebruik de beste back-up- en herstelstrategie voor uw SQL Server workload.
- Zorg ervoor dat Versneld netwerken is ingeschakeld op de virtuele machine.
- Gebruik Microsoft Defender for Cloud om de algehele beveiligingsstatus van de implementatie van uw virtuele machine te verbeteren.
- Maak gebruik van Microsoft Defender for Cloud,geïntegreerd met Microsoft Defender for Cloud,voor specifieke SQL Server-VM-dekking, inclusief evaluaties van beveiligingsleed en Just-In-Time-toegang, waardoor de aanvalsservice wordt beperkt terwijl legitieme gebruikers indien nodig toegang hebben tot virtuele machines. Zie Evaluaties van beveiligingsleed, evaluatiesvan beveiligingsleed inschakelen voor SQL Server-VM's en Just-In-Time-toegang voor meer informatie.
- Gebruik Azure Advisor om te werken met prestatie-, kosten-, betrouwbaarheids-, operationele topprestatiesen beveiligingsaanbevelingen.
- Maak Azure Monitor voor het verzamelen, analyseren en reageren op telemetriegegevens uit uw SQL Server omgeving. Dit omvat het identificeren van infrastructuurproblemen met VM-inzichten en het bewaken van gegevens met Log Analytics voor meer diagnostische gegevens.
- Schakel Autoshutdown in voor ontwikkel- en testomgevingen.
- Implementeert een HADR-oplossing (High Availability and Disaster Recovery) die voldoet aan uw SLA's voor bedrijfscontinuïteit. Zie de HADR-opties die beschikbaar zijn voor SQL Server op Azure-VM's.
- Gebruik de Azure Portal (ondersteuning en probleemoplossing) om de status en geschiedenis van resources te evalueren; indien nodig nieuwe ondersteuningsaanvragen indienen.
HADR-configuratie
Functies voor hoge beschikbaarheid en herstel na noodherstel (HADR), zoals de Always On-beschikbaarheidsgroep en het exemplaar van het failovercluster, zijn afhankelijk van de onderliggende Windows Server-failoverclustertechnologie. Bekijk de best practices voor het wijzigen van uw HADR-instellingen om de cloudomgeving beter te ondersteunen.
Houd voor Windows cluster rekening met de volgende best practices:
- Implementeer waar mogelijk uw SQL Server-VM's 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 routeer.
- Wijzig het cluster in minder agressieve parameters om onverwachte storingen door tijdelijke netwerkfouten of onderhoud van het Azure-platform te voorkomen. Zie Heartbeat- en drempelwaardeninstellingen voor meer informatie. Gebruik Windows Server 2012 aanbevolen waarden voor meer informatie:
- SameSubnetDelay: 1 seconde
- SameSubnetThreshold: 40 heartbeats
- CrossSubnetDelay: 1 seconde
- CrossSubnetThreshold: 40 heartbeats
- Plaats uw VM's in een beschikbaarheidsset of in verschillende beschikbaarheidszones. Zie VM availability settings (VM-beschikbaarheidsinstellingen) voor meer informatie.
- Gebruik één NIC per clusterknooppunt en één subnet.
- Configureer het stemmen van het clusterquorum om 3 of meer oneven aantal stemmen te gebruiken. Wijs geen stemmen toe aan DR-regio's.
- Houd resourcelimieten zorgvuldig in de gaten om onverwacht opnieuw opstarten of failovers vanwege resourcebeperkingen te voorkomen.
- Zorg ervoor dat uw besturingssysteem, stuurprogramma's SQL Server nieuwste builds zijn.
- Prestaties optimaliseren voor SQL Server virtuele Azure-VM's. Bekijk de andere secties in dit artikel voor meer informatie.
- Verminder of verspreid de werkbelasting om resourcelimieten te voorkomen.
- Ga naar een VM of schijf met een hogere limiet om beperkingen te voorkomen.
Houd rekening SQL Server de volgende best practices voor uw SQL Server beschikbaarheidsgroep of failovercluster- exemplaar:
- 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 SQL Server van uw VM-prestaties uw onverwachte failovers niet verhelpt, kunt u overwegen om de bewaking voor de beschikbaarheidsgroep of het failovercluster-exemplaar te verversen. Dit kan echter niet de onderliggende bron van het probleem aanpakken en kan symptomen maskeren door de kans op fouten te verminderen. Mogelijk moet u nog steeds de onderliggende hoofdoorzaak onderzoeken en aanpakken. Gebruik Windows Server 2012 aanbevolen waarden voor meer informatie:
- Time-out voor lease: gebruik deze vergelijking om de maximale time-outwaarde voor de lease te berekenen:
Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
Begin met 40 seconden. Als u de eerder aanbevolen waarden en gebruikt, mag u niet langer dan 80 seconden durenSameSubnetThresholdSameSubnetDelayvoor de time-outwaarde van de lease. - Maximum aantal fouten in een opgegeven periode: u kunt deze waarde instellen op 6.
- Time-out statuscontrole: u kunt deze waarde in eerste instantie instellen op 60000, indien nodig aanpassen.
- Time-out voor lease: gebruik deze vergelijking om de maximale time-outwaarde voor de lease te berekenen:
- Wanneer u de naam van het virtuele netwerk (VNN) en Azure Load Balancer gebruikt om verbinding te maken met uw HADR-oplossing, geeft u op in het connection string, zelfs als uw cluster slechts één
MultiSubnetFailover = truesubnet omvat.- Als de client geen ondersteuning biedt, moet u mogelijk en instellen om clientreferenties voor kortere
MultiSubnetFailover = TrueRegisterAllProvidersIP = 0duur in teHostRecordTTL = 300cachen. Dit kan echter tot extra query's op de DNS-server leiden.
- Als de client geen ondersteuning biedt, moet u mogelijk en instellen om clientreferenties voor kortere
- Als u verbinding wilt maken met uw HADR-oplossing met behulp van de gedistribueerde netwerknaam (DNN), moet u rekening houden met het volgende:
- U moet een client-stuurprogramma gebruiken dat ondersteuning biedt
MultiSubnetFailover = Truevoor , en deze parameter moet zich in de connection string. - Gebruik een unieke DNN-poort in de connection string verbinding te maken met de DNN-listener voor een beschikbaarheidsgroep.
- U moet een client-stuurprogramma gebruiken dat ondersteuning biedt
- Gebruik een databasespiegelingsgroep connection string voor een basisbeschikbaarheidsgroep om de noodzaak van een load balancer of DNN over te slaan.
- Valideer de sectorgrootte van uw VHD's voordat u uw oplossing voor hoge beschikbaarheid implementeert om te voorkomen dat uw I/O's verkeerd zijn uitgelijnd. Zie KB3009974 voor meer informatie.
Zie de uitgebreide best practices voor HADR voor meer informatie.
Volgende stappen
Zie de andere artikelen in deze reeks voor meer informatie:
Zie Beveiligingsoverwegingen voor beveiligingsoverwegingen voor SQL Server in Azure Virtual Machines.
Overweeg om SQL evaluatie in te SQL Server op Azure-VM's.
Bekijk andere SQL Server virtual machine op SQL Server overzicht van Azure Virtual Machines. Als u vragen hebt over virtuele machines met SQL Server, raadpleegt u Veelgestelde vragen.