Überwacht die Arbeitsspeicherauslastung des Hosts.
Mit diesem Monitor wird überwacht, wie viel Arbeitsspeicher in Megabyte (MB) auf dem Host belegt wird. Der verfügbare Arbeitsspeicher auf dem Host liegt unter dem Schwellenwert.
Die Auslastung des Hostarbeitsspeichers durch die auf dem Host ausgeführten virtuellen Maschinen liegt über dem kritischen Schwellenwert.
Migrieren Sie eine weitere virtuelle Maschine zu einem anderen Host, um mehr Speicher freizugeben. Aktivieren Sie die Funktion "Dynamische Optimierung", um die Auslastung von Hostclustern mithilfe von Virtual Machine Manager automatisch auszugleichen. Weiterführende Informationen zur dynamischen Optimierung finden Sie in der Dokumentation zu Virtual Machine Manager.
Target | Microsoft.SystemCenter.VirtualMachineManager.2012.HyperVHost | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SystemCenter.VirtualMachineManager.2012.Performance.ScriptBasedConsecutiveSamplesTwoThresholdsMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.VirtualMachineManager.2012.HostMemoryUtilizationMonitor" Accessibility="Public" Target="VMM2012Discovery!Microsoft.SystemCenter.VirtualMachineManager.2012.HyperVHost" ParentMonitorID="SystemHealth!System.Health.AvailabilityState" Remotable="true" TypeID="Microsoft.SystemCenter.VirtualMachineManager.2012.Performance.ScriptBasedConsecutiveSamplesTwoThresholdsMonitorType">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.VirtualMachineManager.2012.HostMemoryUtilizationMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Data/Context/SampleValue$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="MemoryUtilizationReachedWarning" MonitorTypeStateID="ConditionWarn" HealthState="Warning"/>
<OperationalState ID="MemoryUtilizationReachedError" MonitorTypeStateID="ConditionError" HealthState="Error"/>
<OperationalState ID="MemoryUtilizationIsSuccess" MonitorTypeStateID="ConditionSuccess" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>180</IntervalSeconds>
<TimeoutSeconds>180</TimeoutSeconds>
<WarningThreshold>80</WarningThreshold>
<CriticalThreshold>90</CriticalThreshold>
<NumSamples>3</NumSamples>
<Arguments>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</Arguments>
<ScriptBody>
' Copyright (c) Microsoft Corporation. All rights reserved.
' VBScript source code
' HostMemoryUtilizationCounter.vbs
Option Explicit
SetLocale("en-us")
' This Script is used to check the Host memory utilization
' Alert when the utilization of this partition is high:
' Warning: WarningThreshold%, like 80%
' Critical: CriticalThreshold, like 90%
Dim oArgs, hostComputerName, objWMIService, colItems, objItem, performanceUtilization
Dim oAPI, oBag
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oArgs = Wscript.Arguments
' Check to see if the required script arguments are there
' 1 argument is requried
' If 1 argument does not exist, log a script event
If oArgs.Count = 1 Then
hostComputerName = oArgs(0)
Set oBag = oAPI.CreatePropertyBag()
Set objWMIService = GetObject("winmgmts:\\" & hostComputerName & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
for each objItem in colItems
If objItem.TotalVisibleMemorySize > 0 Then
performanceUtilization = ((objItem.TotalVisibleMemorySize - objItem.FreePhysicalMemory)/objItem.TotalVisibleMemorySize)*100
End If
Next
if performanceUtilization < 0 then
performanceUtilization = 0
end if
performanceUtilization = CInt(performanceUtilization)
Call oBag.AddValue("Utilization", performanceUtilization)
Call oAPI.LogScriptEvent("HostMemoryUtilizationCounter.vbs", 103, 0, "HostMemoryUtilizationCounter is " & performanceUtilization)
Call oAPI.Return(oBag)
Else
Call oAPI.LogScriptEvent("HostMemoryUtilizationCounter.vbs", 101, 0, "HostMemoryUtilizationCounter was not called with 1 argument and was not executed.")
End If
</ScriptBody>
<ObjectName>win32_PerfFormattedData_Perfos_Memory</ObjectName>
<CounterName>PercentCommittedBytesInUse</CounterName>
<InstanceName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</InstanceName>
<Value>$Data/Property[@Name='Utilization']$</Value>
</Configuration>
</UnitMonitor>