System Center 2012 Virtual Machine Manager ホストのメモリ使用率

Microsoft.SystemCenter.VirtualMachineManager.2012.HostMemoryUtilizationMonitor (UnitMonitor)

ホストのメモリ使用率を監視します

Knowledge Base article:

サマリー

このモニターは、ホストのメモリ使用量 (,メガバイト単位) を追跡します。ホストの使用可能メモリがしきい値未満です。

原因

ホストで動作しているバーチャル マシンによる、ホストのメモリ使用率が重大レベルに達しています。

解決方法

ホストの追加メモリを解放するには、バーチャル マシンを別のホストに移行します。Virtual Machine Manager で自動的にホスト クラスターの負荷を分散させるには、動的最適化機能を有効にします。動的最適化については、Virtual Machine Manager のドキュメントを参照してください。

Element properties:

TargetMicrosoft.SystemCenter.VirtualMachineManager.2012.HyperVHost
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.VirtualMachineManager.2012.Performance.ScriptBasedConsecutiveSamplesTwoThresholdsMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
ホストのメモリ使用率が高くなっています
ホストのメモリ使用率 {1} は、{0} の警告レベルまたは重大レベルを超えています
RunAsDefault

Source Code:

<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><Script>
' 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:\\" &amp; hostComputerName &amp; "\root\CIMV2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
for each objItem in colItems
If objItem.TotalVisibleMemorySize &gt; 0 Then
performanceUtilization = ((objItem.TotalVisibleMemorySize - objItem.FreePhysicalMemory)/objItem.TotalVisibleMemorySize)*100
End If
Next

if performanceUtilization &lt; 0 then
performanceUtilization = 0
end if

performanceUtilization = CInt(performanceUtilization)

Call oBag.AddValue("Utilization", performanceUtilization)
Call oAPI.LogScriptEvent("HostMemoryUtilizationCounter.vbs", 103, 0, "HostMemoryUtilizationCounter is " &amp; 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
</Script></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>