Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
I have wanted to poke around the Hyper-V performance counters with PowerShell for a while now – and the arrival of dynamic memory gives me a good excuse to do so. Here is a script that will display all the current dynamic memory performance information of the specified virtual machine:
# Prompt for the Hyper-V Server to use
$HyperVServer = Read-Host "Specify the Hyper-V Server to use (enter '.' for the local computer)"
# Get-Counter does not like "." as a computer name - so look up the local computer name for this case
if ($HyperVServer -eq ".") {$HyperVServer = $env:COMPUTERNAME}
# Prompt for the virtual machine to use
$VMName = Read-Host "Specify the name of the virtual machine"
# Get all the dynamic memory performance counters for the virtual machine
$PhysicalMemory = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Physical Memory" -computername $HyperVServer).CounterSamples[0].CookedValue
$GuestVisiblePhysicalMemory = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Guest Visible Physical Memory" -computername $HyperVServer).CounterSamples[0].CookedValue
$AddedMemory = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Added Memory" -computername $HyperVServer).CounterSamples[0].CookedValue
$RemovedMemory = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Removed Memory" -computername $HyperVServer).CounterSamples[0].CookedValue
$MemoryAddOperations = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Memory Add Operations" -computername $HyperVServer).CounterSamples[0].CookedValue
$MemoryRemoveOperations = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Memory Remove Operations" -computername $HyperVServer).CounterSamples[0].CookedValue
$CurrentPressure = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Current Pressure" -computername $HyperVServer).CounterSamples[0].CookedValue
$MinimumPressure = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Minimum Pressure" -computername $HyperVServer).CounterSamples[0].CookedValue
$MaximumPressure = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Maximum Pressure" -computername $HyperVServer).CounterSamples[0].CookedValue
$AveragePressure = (Get-Counter "\Hyper-V Dynamic Memory VM($VMName)\Average Pressure" -computername $HyperVServer).CounterSamples[0].CookedValue
# Display information
write-host "Dynamic memory information about" $VMname
write-host
write-host "Total memory available to the virtual machine: " $PhysicalMemory "MB"
write-host "Physical memory as reported by task manager in the virtual machine:" $GuestVisiblePhysicalMemory "MB"
write-host
write-host "Amount of memory added to the virtual machine since the last boot: " $AddedMemory "MB"
write-host "Amount of memory removed from the virtual machine since the last boot:" $RemovedMemory "MB"
write-host "Amount of memory add operations since the last boot: " $MemoryAddOperations
write-host "Amount of memory remove operations since the last boot: " $MemoryRemoveOperations
write-host
write-host "Current memory pressure:" $CurrentPressure"%"
write-host "Minimum memory pressure:" $MinimumPressure"%"
write-host "Maximum memory pressure:" $MaximumPressure"%"
write-host "Average memory pressure:" $AveragePressure"%"
Cheers,
Ben