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