Aanbevolen procedures voor SQL Server om de prestaties in Azure Stack Hub te optimaliseren
Dit artikel bevat aanbevolen procedures voor SQL Server voor het optimaliseren van SQL Server en het verbeteren van de prestaties in virtuele machines (VM's) van Microsoft Azure Stack Hub. Gebruik bij het uitvoeren van SQL Server in azure Stack Hub-VM's dezelfde opties voor het afstemmen van databaseprestaties die van toepassing zijn op SQL Server in een on-premises serveromgeving. De prestaties van een relationele database in een Azure Stack Hub-cloud zijn afhankelijk van veel factoren, waaronder de familiegrootte van een VIRTUELE machine en de configuratie van de gegevensschijven.
Wanneer u SQL Server-installatiekopieën maakt, kunt u overwegen om uw VM's in de Azure Stack Hub-portal in te richten. Download de SQL IaaS-extensie via Marketplace-beheer in de Azure Stack Hub-beheerdersportal en download uw keuze uit SQL Server VM-installatiekopieën. Deze omvatten SQL Server 2016 SP1, SQL Server 2016 SP2 en SQL Server 2017.
Notitie
Hoewel in het artikel wordt beschreven hoe u een SQL Server-VM inricht met behulp van de globale Azure-portal, zijn de richtlijnen ook van toepassing op Azure Stack Hub met de volgende verschillen: SSD is niet beschikbaar voor de besturingssysteemschijf en er zijn kleine verschillen in de opslagconfiguratie.
In de VM-installatiekopieën kunt u voor SQL Server alleen bring-your-own-license (BYOL) gebruiken. Voor Windows Server is het standaardlicentiemodel betalen per gebruik (PAYG). Raadpleeg het artikel Veelgestelde vragen over Windows Server in Azure Stack Hub Marketplace voor gedetailleerde informatie over het Windows Server-licentiemodel in de VM.
Het verkrijgen van de beste prestaties voor SQL Server op Azure Stack Hub-VM's is de focus van dit artikel. Als uw workload minder veeleisend is, hebt u mogelijk niet elke aanbevolen optimalisatie nodig. Houd rekening met uw prestatiebehoeften en workloadpatronen wanneer u deze aanbevelingen evalueert.
Notitie
Raadpleeg dit artikel voor prestatierichtlijnen voor SQL Server in Azure-VM's.
Controlelijst voor best practices voor SQL Server
De volgende controlelijst is voor optimale prestaties van SQL Server op Azure Stack Hub-VM's:
Gebied | Optimalisaties |
---|---|
VM-grootte | DS3 of hoger voor SQL Server Enterprise Edition. DS2 of hoger voor SQL Server Standard en Web Edition. |
Storage | Gebruik een VM-serie die Ondersteuning biedt voor Premium-opslag. |
Disks | Gebruik minimaal twee gegevensschijven (één voor logboekbestanden en één voor gegevensbestanden en TempDB) en kies de schijfgrootte op basis van uw capaciteitsbehoeften. Stel de standaardlocaties voor gegevensbestanden in op deze schijven tijdens de installatie van SQL Server. Vermijd het gebruik van besturingssysteem of tijdelijke schijven voor databaseopslag of logboekregistratie. Streep meerdere Azure-gegevensschijven om meer IO-doorvoer te krijgen met behulp van Opslagruimten. Indeling met gedocumenteerde toewijzingsgrootten. |
I/O | Schakel Instant File Initialization in voor gegevensbestanden. Beperk de automatische groei van de databases met redelijk kleine vaste stappen (64 MB-256 MB). Schakel autoshrink in de database uit. Stel standaardlocaties voor back-ups en databasebestanden in op gegevensschijven, niet op de besturingssysteemschijf. Vergrendelde pagina's inschakelen. Sql Server-servicepacks en cumulatieve updates toepassen. |
Functiespecifiek | Maak rechtstreeks een back-up naar blobopslag (indien ondersteund door de SQL Server-versie die wordt gebruikt). |
Raadpleeg de details en richtlijnen in de volgende secties voor meer informatie over hoe en waarom u deze optimalisaties kunt uitvoeren.
Richtlijnen voor VM-grootte
Voor prestatiegevoelige toepassingen worden de volgende VM-grootten aanbevolen:
SQL Server Enterprise-editie: DS3 of hoger
SQL Server Standard-editie en webeditie: DS2 of hoger
Met Azure Stack Hub is er geen prestatieverschil tussen de DS- en DS_v2 VM-serie.
Richtlijnen voor Azure Storage
Vm's uit de DS-serie (samen met DSv2-serie) in Azure Stack Hub bieden de maximale IOPS (besturingssysteemschijf en gegevensschijfdoorvoer). Een VIRTUELE machine uit de DS- of DSv2-serie biedt maximaal 1000 IOPS voor de besturingssysteemschijf en maximaal 2300 IOPS per gegevensschijf, ongeacht het type of de grootte van de gekozen schijf.
De doorvoer van gegevensschijven wordt uniek bepaald op basis van de serie VM-serie. Raadpleeg dit artikel om de doorvoer van de gegevensschijf per reeks VM-serie te identificeren.
Notitie
Selecteer voor productieworkloads een DS-serie of DSv2-serie-VM om de maximaal mogelijke IOPS op de besturingssysteemschijf en gegevensschijven te bieden.
Bij het maken van een opslagaccount in Azure Stack Hub heeft de optie voor geo-replicatie geen effect omdat deze mogelijkheid niet beschikbaar is in Azure Stack Hub.
Richtlijnen voor schijven
Er zijn drie hoofdschijftypen op een Azure Stack Hub-VM:
Besturingssysteemschijf: wanneer u een Azure Stack Hub-VM maakt, koppelt het platform ten minste één schijf (gelabeld als het C-station ) aan de VIRTUELE machine voor uw besturingssysteemschijf. Deze schijf is een VHD die is opgeslagen als een pagina-blob in de opslag.
Tijdelijke schijf: Azure Stack Hub-VM's bevatten een andere schijf genaamd de tijdelijke schijf (gelabeld als het D-station ). Dit is een schijf op het knooppunt dat kan worden gebruikt voor scratchruimte.
Gegevensschijven: U kunt extra schijven als gegevensschijven aan uw VIRTUELE machine koppelen en deze schijven worden opgeslagen in de opslag als pagina-blobs.
In de volgende secties worden aanbevelingen beschreven voor het gebruik van deze verschillende schijven.
Besturingssysteemschijf
Een besturingssysteemschijf is een VHD die u kunt opstarten en koppelen als een actieve versie van een besturingssysteem en is gelabeld als C-station .
Tijdelijke schijf
Het tijdelijke opslagstation, gelabeld als het D-station , is niet permanent. Sla geen gegevens op die u niet wilt verliezen op de D-schijf . Dit omvat uw gebruikersdatabasebestanden en transactielogboekbestanden van gebruikers.
We raden u aan TempDB op een gegevensschijf op te slaan, omdat elke gegevensschijf maximaal 2300 IOPS per gegevensschijf biedt.
Gegevensschijven
- Gegevensschijven gebruiken voor gegevens en logboekbestanden. Als u geen schijfstriping gebruikt, gebruikt u twee gegevensschijven van een virtuele machine die Ondersteuning biedt voor Premium-opslag, waarbij de ene schijf de logboekbestanden bevat en de andere de gegevens en TempDB-bestanden bevat. Elke gegevensschijf biedt een aantal IOPS, afhankelijk van de VM-serie, zoals beschreven in VM-grootten die worden ondersteund in Azure Stack Hub. Als u een schijfstripingtechniek gebruikt, zoals Opslagruimten, plaatst u alle gegevens en logboekbestanden op hetzelfde station (inclusief TempDB). Deze configuratie biedt u het maximum aantal IOPS dat beschikbaar is voor SQL Server, ongeacht welk bestand ze op een bepaald moment nodig heeft.
Notitie
Wanneer u een SQL Server-VM inricht in de portal, hebt u de mogelijkheid om uw opslagconfiguratie te bewerken. Afhankelijk van uw configuratie configureert Azure Stack Hub een of meer schijven. Meerdere schijven worden gecombineerd tot één opslaggroep. Zowel de gegevens- als logboekbestanden bevinden zich in deze configuratie.
Schijfstriping: Voor meer doorvoer kunt u extra gegevensschijven toevoegen en schijfstriping gebruiken. Als u het aantal benodigde gegevensschijven wilt bepalen, analyseert u het aantal IOPS dat is vereist voor uw logboekbestanden en voor uw gegevens- en TempDB-bestanden. U ziet dat IOPS-limieten per gegevensschijf zijn gebaseerd op de vm-seriefamilie en niet op basis van de VM-grootte. Netwerkbandbreedtelimieten zijn echter gebaseerd op de VM-grootte. Zie de tabellen over VM-grootten in Azure Stack Hub voor meer informatie. Volg de volgende richtlijnen:
Gebruik voor Windows Server 2012 of hoger Opslagruimten met de volgende richtlijnen:
Stel de interleave (stripe size) in op 64 kB (65.536 bytes) voor OLTP-workloads (Online Transaction Processing) en 256 KB (262.144 bytes) voor datawarehousingworkloads om prestatie-impact te voorkomen vanwege onjuiste uitlijning van partities. Dit moet worden ingesteld met PowerShell.
Aantal kolommen = aantal fysieke schijven instellen. Gebruik PowerShell bij het configureren van meer dan acht schijven (niet Serverbeheer gebruikersinterface).
Met de volgende PowerShell wordt bijvoorbeeld een nieuwe opslaggroep gemaakt, waarbij de grootte van het opslaan is ingesteld op 64 kB en het aantal kolommen op 2:
$PoolCount = Get-PhysicalDisk -CanPool $True $PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"} New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Storage Spaces*" -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" -Interleave 65536 -NumberOfColumns 2 -ResiliencySettingName simple -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" -AllocationUnitSize 65536 -Confirm:$false
Bepaal het aantal schijven dat is gekoppeld aan uw opslaggroep op basis van uw belastings verwachtingen. Houd er rekening mee dat verschillende VM-grootten verschillende aantallen gekoppelde gegevensschijven toestaan. Zie VM-grootten die worden ondersteund in Azure Stack Hub voor meer informatie.
Om de maximaal mogelijke IOPS voor gegevensschijven te verkrijgen, is het raadzaam om het maximum aantal gegevensschijven toe te voegen dat wordt ondersteund door uw VM-grootte en om schijfstriping te gebruiken.
Grootte ntfs-toewijzingseenheid: bij het opmaken van de gegevensschijf raden we u aan een toewijzingseenheid van 64 kB te gebruiken voor gegevens- en logboekbestanden en TempDB.
Procedures voor schijfbeheer: wanneer u een gegevensschijf verwijdert, stopt u de SQL Server-service tijdens de wijziging. Wijzig ook geen cache-instellingen op de schijven omdat deze geen prestatieverbeteringen biedt.
Waarschuwing
Het stoppen van de SQL-service tijdens deze bewerkingen kan leiden tot beschadiging van de database.
I/O-richtlijnen
Overweeg om direct initialisatie van bestanden in te schakelen om de tijd te verkorten die nodig is voor de eerste bestandstoewijzing. Als u wilt profiteren van instant bestandsinitialisatie, verleent u het SQL Server-serviceaccount (MSSQLSERVER) met SE_MANAGE_VOLUME_NAME en voegt u dit toe aan het beveiligingsbeleid Volumeonderhoudstaken uitvoeren. Als u een installatiekopieën van een SQL Server-platform voor Azure gebruikt, wordt het standaardserviceaccount (NT Service\MSSQLSERVER) niet toegevoegd aan het beveiligingsbeleid Volumeonderhoudstaken uitvoeren. Met andere woorden: initialisatie van direct bestand is niet ingeschakeld in een installatiekopieën van een SQL Server Azure-platform. Nadat u het SQL Server-serviceaccount hebt toegevoegd aan het beveiligingsbeleid Volumeonderhoudstaken uitvoeren, start u de SQL Server-service opnieuw op. Er kunnen beveiligingsoverwegingen zijn voor het gebruik van deze functie. Zie Initialisatie van databasebestand voor meer informatie.
Autogroei is een onvoorziene gebeurtenis voor onverwachte groei. Beheer uw gegevens en logboekgroei niet op dagelijkse basis met automatische groei. Als automatisch groeien wordt gebruikt, vergroot u het bestand vooraf met behulp van de schakeloptie Grootte .
Zorg ervoor dat autoshrink is uitgeschakeld om onnodige overhead te voorkomen die de prestaties negatief kan beïnvloeden.
Standaardlocaties voor back-ups en databasebestanden instellen. Gebruik de aanbevelingen in dit artikel en breng de wijzigingen aan in het venster Servereigenschappen. Zie De standaardlocaties voor gegevens- en logboekbestanden (SQL Server Management Studio) weergeven of wijzigen voor instructies. In de volgende schermopname ziet u waar u deze wijzigingen kunt aanbrengen:
Schakel vergrendelde pagina's in om IO- en wisselactiviteiten te verminderen. Zie De optie Vergrendelingspagina's in het geheugen inschakelen (Windows) voor meer informatie.
Overweeg om gegevensbestanden te comprimeren wanneer u Azure Stack Hub overdraagt naar/buiten, inclusief back-ups.
Functiespecifieke richtlijnen
Sommige implementaties kunnen extra prestatievoordelen opleveren met behulp van geavanceerdere configuratietechnieken. In de volgende lijst worden enkele SQL Server-functies gemarkeerd die u kunnen helpen betere prestaties te bereiken:
Maak een back-up van Azure Storage. Wanneer u back-ups maakt voor SQL Server die wordt uitgevoerd in azure Stack Hub-VM's, kunt u SQL Server Backup naar URL gebruiken. Deze functie is beschikbaar vanaf SQL Server 2012 SP1 CU2 en wordt aanbevolen voor het maken van back-ups naar de gekoppelde gegevensschijven.
Wanneer u een back-up maakt of herstelt met behulp van Azure Storage, volgt u de aanbevelingen in SQL Server Backup naar best practices voor URL's en probleemoplossing en herstel vanuit back-ups die zijn opgeslagen in Microsoft Azure. U kunt deze back-ups ook automatiseren met behulp van automatische back-up voor SQL Server in Azure-VM's.
Een back-up maken van Azure Stack Hub-opslag. U kunt op dezelfde manier back-ups maken naar Azure Stack Hub-opslag als met back-ups naar Azure Storage. Wanneer u een back-up maakt in SQL Server Management Studio (SSMS), moet u de configuratiegegevens handmatig invoeren. U kunt SSMS niet gebruiken om de opslagcontainer of de Shared Access Signature te maken. SSMS maakt alleen verbinding met Azure-abonnementen, niet met Azure Stack Hub-abonnementen. In plaats daarvan moet u het opslagaccount, de container en de Shared Access Signature maken in de Azure Stack Hub-portal of met PowerShell.
Notitie
Shared Access Signature is het SAS-token uit de Azure Stack Hub-portal, zonder de voorloop '?' in de tekenreeks. Als u de kopieerfunctie vanuit de portal gebruikt, moet u de voorloopfunctie '?' verwijderen om het token in SQL Server te laten werken.
Zodra u de back-upbestemming hebt ingesteld en geconfigureerd in SQL Server, kunt u vervolgens een back-up maken van de Azure Stack Hub-blobopslag.