This monitor tracks threshold breaches for the following metrics:
memoryBalloonPct - the current memory assigned to the balloon driver
memorySwapRateKB/s - the rate of bytes swapped per second for this VM
cpuSwapWaitPct - percentage of VM CPU time spent waiting for memory swap
Alert severity is calculated as follows - if one metric has breached threshold, then the state is Warning. If more than one metric has breached threshold, then the State is Critical.
The monitor is enabled by default. You can override the following parameters:
Name | Default Value | Description |
MemoryBalloonPctThreshold | 50 | Specifies a threshold for the 'memoryBalloonPct' metric. If the metric value exceeds the threshold, the monitor will start generating alerts. |
MemorySwapRateThreshold | 100 | Specifies a threshold for the 'memorySwapRateKB/s' metric. If the metric value exceeds the threshold, the monitor will start generating alerts. |
CPUSwapWaitPctThreshold | 25 | Specifies a threshold for the 'cpuSwapWaitPct' metric. If the metric value exceeds the threshold, the monitor will start generating alerts. |
Note: If you have configured several overrides of the same type, select the Enforced check box for an override that should have priority over all other overrides.
Review the alert description (which is dynamically generated depending on the metrics which have breached the threshold) for specific guidance relevant to this alert. General troubleshooting information is given below.
Threshold breach(es) for these metrics indicate that the vSphere host is experiencing memory stress.
The Memory Balloon driver (part of VM Tools) is used by vSphere hosts to recover memory from inside the guest OS. This is the first stage of vSphere VM memory management techniques and not a performance problem in itself; however it can cause knock-on performance issues such as high pagefile use within the guest OS.
Memory Swapping is the last-resort method for the host to reclaim memory to fulfill VM demands, after better methods such as ballooning and compression have failed. Swapping to disk causes high memory latency and can have a significant effect on overall VM performance.
CPU Swap Wait time indicates that the VM is waiting for CPU resources while the host swaps memory. This also indicates the host is stressed for memory resources and that this is introducing performance slow-down for VMs.
These metrics are captured at the VM level, as the specific VM involved can have a configuration or resource issue (such as very high memory allocation/demand). However the root cause of ballooning/swapping can be that the vSphere host is experiencing memory shortage when trying to allocate resources for all VMs. Troubleshooting should include the following:
If the VM is forcing swapping on the host, but not ballooning, then check that VMware Tools is properly installed and running in the VM (if the guest OS supports it). Without VMware Tools the Balloon Driver will be unavailable and the host only has the option to swap when recovering memory.
Review open alerts and historical metrics for the relevant vSphere host (as given in the alert description) on memory usage, ballooning, swapping and pressure to establish whether the Host has overall high values for these metrics, or if the issue is confined to this VM.
Check performance dashboards/reports to find the top VMs for memory utilization on the host, and review recent history for VM memory metrics. Note that high swapping & ballooning may be caused by a high memory-demand workload in a different VM (but on the same host) from the VM generating the alert.
Ops Mgr 2012 and 2016 customers can use the in-context dashboards, available in the Navigation section of the Tasks pane, to drill down into historical performance data and current alerts. These dashboards will show relevant metrics for this object and for contained objects, and further dashboards will become available by selecting within the dashboard. Drill-down from dashboard to dashboard to arrive at the detailed metrics that can assist in finding root-cause.
Review memory demands from all VM workloads on this host. Although this is a VM-level alert, check the Ballooning and Swapping metrics from all VMs on this host using the Host Memory Ballooning, Usage, and Swapping Analysis dashboards.
High ballooning and/or swapping from all VMs on the host indicate an overall host issue with memory resources.
High ballooning and/or swapping from one VM on the host indicate inappropriate or misconfigured memory settings (such as Limits) for the VM, or excessive memory demand which the Host cannot meet.
In particular the VM Memory Ballooning and Swapping Analysis dashboard will show historical data for the relevant metrics on memory usage. Also all alerts for the VM and the in-guest Ops Mgr agent (if installed) will be shown - review in-guest alerts to understand memory demands from application workloads inside the VM.
Use the Alerts View to see all current open issues for this object. Use the Events View to review any error and warning events for this object. Open a Performance View to see the performance metrics for this object and all contained objects. Open a Diagram View to analyze the relationships of this object to other components.
See the Help Center for more information including reference lists of all Rules and Monitors and full set of User Guides for the Veeam MP for VMware.
See the VMware Online Documentation for more information on VMware vSphere, in particular:
Target | Veeam.Virt.Extensions.VMware.VMGUEST | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | High | ||
Alert Auto Resolve | True | ||
Monitor Type | Veeam.Virt.Extensions.VMware.AdvancedPerformance.VMMemoryBallooningAndSwappingAnalysis.3State3MetricMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Veeam.Virt.Extensions.VMware.VMGUEST.Monitor.memoryBallooningAndSwapping" Accessibility="Public" Enabled="onEssentialMonitoring" Target="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMGUEST" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Veeam.Virt.Extensions.VMware.AdvancedPerformance.VMMemoryBallooningAndSwappingAnalysis.3State3MetricMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Veeam.Virt.Extensions.VMware.VMGUEST.Monitor.memoryBallooningAndSwapping_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/DataItem/Property[@Name='AlertDescription']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Green" MonitorTypeStateID="Green" HealthState="Success"/>
<OperationalState ID="Yellow" MonitorTypeStateID="Yellow" HealthState="Warning"/>
<OperationalState ID="Red" MonitorTypeStateID="Red" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MemoryBalloonPctThreshold>50</MemoryBalloonPctThreshold>
<MemorySwapRateThreshold>100</MemorySwapRateThreshold>
<CPUSwapWaitPctThreshold>25</CPUSwapWaitPctThreshold>
<FilterExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='entityId']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMGUEST"]/id$</Value>
</ValueExpression>
</SimpleExpression>
</FilterExpression>
<MemAlloc>$Target/Property[Type="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMGUEST"]/memoryAllocReservation$</MemAlloc>
<MemLimit>$Target/Property[Type="VeeamVEVMwareLib!Veeam.Virt.Extensions.VMware.VMGUEST"]/memoryLimit$</MemLimit>
</Configuration>
</UnitMonitor>