
VM prestanda i Hyper-V
Jag felsöker alltid då och då prestanda flaskhalsar i Hyper-V och tänkte dela med mig av ett skript som enkelt låter en kontrollera hur prestandan ser ut i er egen miljö.
Som exempel ska jag beskriva ett fel som jag hade i min egen labmiljö:
Min labbrigg består av server med Intels X79 Chipset. Jag hade fenomenal prestanda i Windows Server 2012 R2 Storage Spaces på disken, hastigheter på över 1GB/sec… tills jag startade ett par VM:s. Då gick disken upp i 100% Active Time, och hastigheterna kröp ner till kb/sec hastighet. Så fort jag stannat alla VM:s gick Active Time ner till 0%. Det roliga var att samma inträffade när jag körde VM:s över SMB mot en annan maskin också. Lösningen på det hela var att uppgradera Bios och installera Intels Chipset Driver till senaste versionen.
Innan uppgradering av Bios & Drivrutiner hade jag ”AggregatedAverageLatency” på mellan 100.000-2.000.000 på vissa VM:s.
Mätningarna skrev över en 20 sekunders intervall, och över Normalized IOPS av 8k storlek. Nedan ett exempel när allting ser normalt ut.
# Kör detta direkt på din Hyper-V host som du vill mäta aktiviteten på # Slå på & av mätarna get-vm * | Enable-VMResourceMetering get-vm * | Disable-VMResourceMetering # Se vilka som är aktiverade get-vm * | Format-List Name,ResourceMeteringEnabled # Se CPU & minnes & nätverksnyttjande get-vm | Measure-VM | FT # Se Disk prestanda & IOPS get-vm | Measure-VM | FT VMName, Aggr* -AutoSize