Hyper-V hat ab Werk alles Notwendige für ein regelmäßiges, grundlegendes VM-Performance-Monitoring der virtuellen Computer an Board.
Hyper-V: VM-Performance-Monitoring aktivieren
Die folgenden Befehle setzen das Aufzeichnungsintervall und aktivieren die Aufzeichnung.
# MeteringSaveInterval
Set-VMHost -ResourceMeteringSaveInterval "00:10:00" # (hh:mm:ss)
# Enable-VMResourceMetering for all VMs
Get-VM | Enable-VMResourceMetering
Code-Sprache: PowerShell (powershell)
Hyper-V: VM-Performance-Monitoring-Bericht per Mail senden
Mit dem folgenden Script werden die VM-Performancewerte erhoben, zurückgesetzt (= neuer Monitoringzeitraum gestartet) und per Mail gesendet. Für ein regelmäßiges Monitoring sollte das Script als geplante Aufgabe über die Windows Aufgabenplanung ausgeführt werden.
# Mail settings
$mailTo = "mail@domain.at"
$mailFrom = "mail@domain.at"
$mailSubject = "VM-Performance"
$mailSMTP = "smtp.domain.at"
$mailBody = ""
#########################################
# Get all VMs
$vms = Get-VM
# Get VMResourceMetering data
$measures = $vms | Measure-VM | Sort-Object VMName
# Reset VMResourceMetering data
$vms | Reset-VMResourceMetering
# Create Table
$table = $measures | Select-Object VMName,AvgCPU,AvgRAM,TotalDisk,AggregatedAverageNormalizedIOPS,AggregatedNormalizedIOCount,AggregatedDiskDataRead,AggregatedDiskDataWritten,AggregatedAverageLatency | ConvertTo-Html
# Report
$mailbody += $table
Send-MailMessage -To $mailTo -From $mailFrom -Subject $mailSubject -SmtpServer $mailSMTP -Body $mailbody -BodyAsHtml -encoding ([System.Text.Encoding]::UTF8)
Code-Sprache: PowerShell (powershell)
Hyper-V: VM-Performance-Monitoring deaktivieren
Das Monitoring lässt sich mit Disable-VMResourceMetering deaktivieren.
Get-VM | Disable-VMResourceMetering
Code-Sprache: PowerShell (powershell)