Azure VM-schijfcache inschakelen en configureren met Azure Portal
We hebben de instellingen en eigenschappen gezien die u kunt selecteren om de schijfprestaties te voorspellen. Laten we nu eens kijken naar manieren om dit te verbeteren via caching.
Schijfcache
Een cache is een speciaal onderdeel waarin gegevens worden opgeslagen, meestal in het geheugen, zodat deze sneller kunnen worden geopend. De gegevens in een cache zijn vaak gegevens die eerder zijn gelezen of gegevens die het gevolg waren van een eerdere berekening. Het doel is om sneller toegang te krijgen tot gegevens dan het ophalen van de schijf.
Caching maakt gebruik van gespecialiseerde (en soms dure) tijdelijke opslag met snellere lees- en schrijfprestaties dan permanente opslag. Omdat cacheopslag vaak beperkt is, moet u beslissingen nemen over welke gegevensbewerkingen het meest profiteren van caching. Maar zelfs wanneer de cache algemeen beschikbaar kan worden gemaakt, zoals in Azure, is het nog steeds belangrijk om de workloadpatronen van elke schijf te kennen voordat u beslist welk cachetype moet worden gebruikt.
leescache probeert het ophalen van gegevens te versnellen. In plaats van uit permanente opslag te lezen, worden de gegevens uit de snellere cache gelezen. Gegevens die worden gelezen, raken de cache onder de volgende omstandigheden:
- De gegevens zijn eerder gelezen en bevinden zich in de cache.
- De cache is groot genoeg om alle gegevens te bewaren.
Het is belangrijk te weten dat lezen in cache helpt wanneer er sprake is van voorspelbaarheid voor de leeswachtrij, zoals een reeks opeenvolgende leesbewerkingen. Voor willekeurige I/O, waarbij de gegevens die u opent verspreid zijn over de opslag, heeft caching weinig of geen voordeel en kan het zelfs de schijfprestaties verminderen.
Opslaan in cache probeert de het schrijven van gegevens te versnellen naar permanente opslag. Wanneer een app gebruikmaakt van een schrijfcache, kunnen de gegevens als opgeslagen worden beschouwd. In werkelijkheid worden de gegevens in een cache in de wachtrij geplaatst; ze wachten om op een schijf geschreven te worden. Zoals u zich kunt voorstellen, kan dit mechanisme een potentieel storingspunt zijn, bijvoorbeeld wanneer een systeem wordt afgesloten voordat de gegevens in de cache worden geschreven. Sommige systemen, zoals SQL Server, verwerken het schrijven van gegevens in de cache naar permanente schijfopslag zelf.
Azure Disk Caching
Er zijn twee typen schijfcaching die betrekking hebben op schijfopslag:
- Cacheopslag in Azure Storage
- Schijfcaching van virtuele Azure-machines (VM)-schijven
Azure Storage-caching biedt cacheservices voor Azure Blob Storage, Azure Files en andere inhoud in Azure. De configuratie van deze typen cache valt buiten het bereik van deze module.
Schijfcaching van virtuele Azure-machines gaat over het optimaliseren van lees- en schrijftoegang tot de VHD-bestanden (virtuele harde schijf) die zijn gekoppeld aan Virtuele Azure-machines. In deze module richten we ons op schijfcaching.
Schijfcaching wordt niet ondersteund voor Ultra Disks of Premium SSD v2, maar ze profiteren al van lagere latentie, waardoor sommige van dezelfde kernproblemen als schijfcaching worden opgelost.
Schijftypen van virtuele Azure-machines
Er zijn drie typen schijven die worden gebruikt met Azure-VM's:
besturingssysteemschijf: wanneer u een Virtuele Azure-machine maakt, koppelt Azure automatisch een VHD voor het besturingssysteem (OS).
tijdelijke schijf: wanneer u een Virtuele Azure-machine maakt, wordt in Azure ook automatisch een tijdelijke schijf toegevoegd. Deze schijf wordt gebruikt voor gegevens, zoals pagina- en wisselbestanden. De gegevens op deze schijf gaan mogelijk verloren tijdens onderhoud of een vm opnieuw implementeren. Gebruik deze niet voor het opslaan van permanente gegevens, zoals databasebestanden of transactielogboeken.
Gegevensschijven: een gegevensschijf is een VHD die is gekoppeld aan een virtuele machine om toepassingsgegevens of andere gegevens op te slaan die u moet bewaren.
Besturingssysteemschijven en gegevensschijven profiteren van azure VM-schijfcaching. De cachegrootte voor een VM-schijf is afhankelijk van de grootte van het VM-exemplaar en het aantal schijven dat is gekoppeld aan de VIRTUELE machine. U kunt caching inschakelen voor maximaal 4 TiB-schijven.
Cacheopties voor Virtuele Azure-machines
Er zijn drie algemene opties voor het opslaan van VM-schijven in cache:
- lezen/schrijven: cache voor terugschrijven. Gebruik deze optie alleen als uw toepassing het schrijven van gegevens in de cache correct afhandelt naar permanente schijven wanneer dat nodig is.
- alleen-lezen: leesbewerkingen worden uitgevoerd vanuit de cache.
- Geen: Geen cache. Selecteer deze optie voor alleen-schrijven en schrijfintensieve schijven. Logboekbestanden zijn een goede kandidaat omdat ze schrijfintensieve bewerkingen zijn.
Niet elke cacheoptie is beschikbaar voor elk type schijf. In de volgende tabel ziet u de cacheopties voor elk schijftype:
alleen-lezen | lezen/schrijven | Geen | |
---|---|---|---|
besturingssysteemschijf | ja | Ja (standaard) | ja |
gegevensschijf | Ja (standaard) | ja | ja |
tijdelijke schijf | Nee | Nee | Nee |
Notitie
U kunt geen opties voor schijfcache wijzigen voor L-serie en B-serie virtuele machines.
Prestatieoverwegingen voor azure VM-schijfcaching
Hoe kunnen uw cache-instellingen van invloed zijn op de prestaties van uw workloads die worden uitgevoerd op Azure-VM's?
OS-schijf
Het standaardgedrag van een vm-besturingssysteemschijf is het gebruik van de cache in de lees-/schrijfmodus. Dus als u toepassingen hebt die gegevensbestanden op de besturingssysteemschijf opslaan en veel willekeurige lees-/schrijfbewerkingen naar de gegevensbestanden uitvoeren. U kunt deze bestanden verplaatsen naar een gegevensschijf waarvoor de cache is uitgeschakeld. Waarom is dat? Als de leeswachtrij geen sequentiële leesbewerkingen bevat, heeft caching weinig of geen voordeel. De overhead voor het onderhouden van de cache alsof de gegevens sequentieel waren, kunnen de schijfprestaties verminderen.
Gegevensschijven
Voor prestatiegevoelige toepassingen moet u gegevensschijven gebruiken in plaats van de besturingssysteemschijf. Met afzonderlijke schijven kunt u de juiste cache-instellingen voor elke schijf configureren.
Op Azure VM's waarop SQL Server wordt uitgevoerd, leidt het inschakelen van read-only caching op de gegevensschijven (voor normale en TempDB-gegevens) tot aanzienlijke prestatieverbeteringen. Logboekbestanden zijn daarentegen goede kandidaten voor gegevensschijven zonder caching.
Waarschuwing
Als u de cache-instelling van een Azure-schijf wijzigt, wordt de doelschijf losgekoppeld en vervolgens opnieuw gekoppeld. Als het de besturingssysteemschijf is, wordt de virtuele machine opnieuw opgestart. Stop alle toepassingen/services die mogelijk worden beïnvloed door deze onderbreking voordat u de instelling voor de schijfcache wijzigt.
U kunt de instellingen voor schijfcache van virtuele machines configureren met een van de volgende hulpprogramma's:
- Azure Portal
- Azure-opdrachtregelinterface (CLI)
- Azure PowerShell
- Resource Manager-sjablonen
Azure Portal gebruiken om caching te configureren
Wanneer u een nieuwe VIRTUELE machine inricht met behulp van Azure Portal, kunt u de standaardconfiguratie voor caching voor de besturingssysteemschijf pas wijzigen als de VIRTUELE machine is geïmplementeerd.
Wanneer u een gegevensschijf aan een bestaande VIRTUELE machine toevoegt, kunt u de cacheoptie configureren voordat de schijf op de virtuele machine wordt geïmplementeerd.
Vervolgens gaan we een virtuele machine maken en de cache-instellingen wijzigen met behulp van Azure Portal.