Video card drivers tend to use memory access methods that cause Hyper-V to need to clear out the CPU cache for memory page table mapping a lot. This is an expensive thing to do in Hyper-V at the best of times.
http://blogs.msdn.com/b/virtual_pc_guy/archive/2009/11/16/understanding-high-end-video-performance-issues-with-hyper-v.aspx
Target | Microsoft.Windows.HyperV.Discovery.ServerRole | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Instance Name | Hyper-V Hypervisor Root Partition | ||
Counter Name | Virtual TLB Flush Entires/sec | ||
Frequency | 1200 | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | System.Performance.ConsecutiveSamplesThreshold | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="HyperV.MPE.2019.SRHV.VirtualTLBFlush.Monitor" Accessibility="Public" Enabled="false" Target="MSWinHV2019Dis!Microsoft.Windows.HyperV.Discovery.ServerRole" ParentMonitorID="SHLib!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="SPerf!System.Performance.ConsecutiveSamplesThreshold" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="HyperV.MPE.2019.SRHV.VirtualTLBFlush.Monitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/InstanceName$</AlertParameter1>
<AlertParameter2>$Data/Context/ObjectName$</AlertParameter2>
<AlertParameter3>$Data/Context/CounterName$</AlertParameter3>
<AlertParameter4>$Data/Context/SampleValue$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConditionFalse" MonitorTypeStateID="ConditionFalse" HealthState="Success"/>
<OperationalState ID="ConditionTrue" MonitorTypeStateID="ConditionTrue" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="MSWinLib!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<CounterName>Virtual TLB Flush Entires/sec</CounterName>
<ObjectName>Hyper-V Hypervisor Root Partition</ObjectName>
<InstanceName/>
<AllInstances>true</AllInstances>
<Frequency>1200</Frequency>
<Threshold>100</Threshold>
<Direction>greaterequal</Direction>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>