Effect van caching op schijfprestaties in Azure
Net als bij uw lokale computers kunnen de prestaties van virtuele machines vaak rechtstreeks worden gekoppeld aan hoe snel de virtuele machine gegevens kan lezen en schrijven. Om te begrijpen hoe we die prestaties kunnen verbeteren, moeten we eerst begrijpen hoe de prestaties worden gemeten. We moeten ook de instellingen en keuzes begrijpen die van invloed zijn op die meting.
We kijken specifiek naar de onderliggende schijven en opslag die worden gebruikt voor VM's. Houd er rekening mee dat u ook rekening moet houden met de toepassingslaag wanneer u de prestaties bekijkt. Als u bijvoorbeeld een database in een VIRTUELE machine uitvoert, wilt u de prestatie-instellingen bekijken die specifiek zijn voor de database om ervoor te zorgen dat de database is geoptimaliseerd voor de VIRTUELE machine en opslag waarop u deze uitvoert.
Laten we beginnen met het definiëren van enkele termen en de garanties die Azure over deze voorwaarden doet.
I/O-bewerkingen per seconde
Het opslagtype dat u selecteert (Standard of Premium) bepaalt hoe snel uw schijven zijn. We meten deze prestaties in I/O-bewerkingen per seconde of IOPS (uitgesproken als 'eye-ops').
IOPS is het aantal aanvragen dat een schijf in één seconde kan verwerken. Eén verzoek is een lees- of schrijfbewerking. Deze meting wordt rechtstreeks toegepast op opslag. Als u bijvoorbeeld een schijf hebt die 5000 IOPS-kan uitvoeren, betekent dit dat het theoretisch 5000 lees- en/of schrijfbewerkingen per seconde kan verwerken.
Notitie
Externe factoren, waaronder latentie, kunnen van invloed zijn op IOPS.
IOPS is rechtstreeks van invloed op de prestaties van uw toepassing. Sommige toepassingen, zoals retailwebsites, hebben hoge IOPS nodig om alle kleine en willekeurige I/O-aanvragen te verwerken die snel moeten worden verwerkt om de site responsief te houden.
IOPS in Azure
Wanneer u een Premium Storage-schijf koppelt aan uw grootschalige VM, richt Azure een gegarandeerd aantal IOPS in volgens de schijfspecificatie. Een P50-schijf levert bijvoorbeeld 7500 IOPS-. Elke grote VM-grootte heeft ook een specifieke IOPS-limiet die kan worden onderhouden. Een Standard GS5--VM heeft bijvoorbeeld een IOPS van 80.000 IOPS.
IOPS is een prestatiemeting van uw schijven; Het is echter een theoretische limiet. Twee andere factoren kunnen van invloed zijn op de werkelijke prestaties van de toepassing: doorvoer en latentie.
Wat is doorvoer?
Doorvoer is de hoeveelheid gegevens die uw toepassing in een opgegeven interval naar de opslagschijven verzendt (meestal per seconde). Als uw toepassing I/O uitvoert met grote gegevensblokken, is een hoge doorvoer vereist.
Azure richt doorvoer in Premium Storage-schijven in op basis van de specificatie van die schijf. Een P50 schijf voorziet bijvoorbeeld 250 MB per seconde schijfdoorvoer. Elke grote VM-grootte heeft ook een specifieke doorvoerlimiet die het kan ondersteunen. Standard GS5 VM heeft bijvoorbeeld een maximale doorvoer van 2000 MB per seconde.
IOPS versus doorvoer
Doorvoer en IOPS hebben een directe relatie en het wijzigen van de ene heeft een direct effect op de andere. Als u een theoretische limiet voor doorvoer wilt krijgen, kunt u de formule gebruiken: IOPS x I/O size = throughput
. Het is belangrijk om beide waarden te overwegen bij het plannen van uw toepassing.
Wat is latentie?
Het lezen en schrijven van gegevens kost tijd. latentie is de tijd die uw app nodig heeft om een aanvraag naar de schijf te verzenden en een antwoord te krijgen. Latentie geeft in wezen aan hoe lang het duurt om het proces te één I/O-aanvraag voor lezen of schrijven.
Latentie stelt een limiet in voor IOPS. Als onze schijf bijvoorbeeld 5000 IOPS kan verwerken, maar elke bewerking 10 ms duurt, wordt onze app beperkt tot 500 bewerkingen per seconde vanwege de verwerkingstijd. Dit voorbeeld is een eenvoudige illustratie; de meeste latentie is aanzienlijk lager. Uiteindelijk bepalen latentie en doorvoer hoe snel uw app gegevens uit de opslag kan verwerken.
Premium-opslag biedt consistente lage latenties en u kunt zo nodig nog betere latentie bereiken via caching-.
De schijfprestaties testen
U kunt de IOPS, doorvoer en latentie van uw VM-schijven aanpassen en verdelen door de juiste VM-grootte en het juiste opslagtype te selecteren. Normaal gesproken hebben de grotere of duurdere VM-grootten hogere garanties voor maximale IOPS en doorvoer. Voeg toe aan die vergelijking Standard versus Premium-opslag en HDD versus SSD-keuzes en u hebt verschillende parameters waarmee u kunt spelen.
Als u de juiste combinatie selecteert, moet u inzicht krijgen in uw toepassingsvereisten. Voor high-I/O-toepassingen, zoals databaseservers of online transactionele verwerkingssystemen, is een hogere IOPS vereist, terwijl meer rekenkundige toepassingen mogelijk minder vereisten hebben. Bovendien hebben de soorten bewerkingen die de toepassingen uitvoeren invloed op uw doorvoer. I/O met hoge willekeurige toegang is meestal langzamer dan lange opeenvolgende leesbewerkingen.
Zodra u uw configuratie hebt geselecteerd, kunt u hulpprogramma's zoals Iometer gebruiken om de schijfprestaties op Linux- en Windows-VM's te testen. Deze test geeft u een beter beeld van wat voor soort prestaties u kunt verwachten. Het kan u ook helpen bij het identificeren van manieren om het gebruik van de opslag van uw app te verbeteren. Een toepassing die single-threaded I/O gebruikt, heeft bijvoorbeeld waarschijnlijk verminderde I/O-prestaties vanwege latentie.
In de volgende les kijken we naar enkele andere dingen die we kunnen doen om de schijfprestaties te verbeteren.