|
| 1 | +--- |
| 2 | +title: Troubleshoot Hyper-V Virtual Machine Performance |
| 3 | +description: Resolves issues in the Hyper-V virtualization component in Windows Server environments. |
| 4 | +ms.date: 10/08/2025 |
| 5 | +manager: dcscontentpm |
| 6 | +audience: itpro |
| 7 | +ms.topic: troubleshooting |
| 8 | +ms.reviewer: kaushika |
| 9 | +ms.custom: |
| 10 | +- sap:Virtualization and Hyper-V\Virtual machine performance |
| 11 | +- pcy:WinComm Storage High Avail |
| 12 | +appliesto: |
| 13 | + - <a href=https://learn.microsoft.com/windows/release-health/windows-server-release-info target=_blank>Supported versions of Windows Server</a> |
| 14 | +--- |
| 15 | + |
| 16 | +# Troubleshoot Hyper-V virtual machine performance |
| 17 | + |
| 18 | +## Summary |
| 19 | + |
| 20 | +Hyper-V is a core component for virtualization in Windows Server environments. It enables the management of multiple virtual machines (VMs) on a single or clustered host infrastructure. However, administrators frequently encounter various VM startup failures and performance issues that can impede business operations. Such problems can be caused by hardware limitations, configuration changes, updates, networking, storage, and software or file system corruption. Rapid and comprehensive troubleshooting is essential to minimize downtime and preserve data integrity. This article is designed to help administrators resolve Hyper-V VM issues, addresses common failure modes and their resolutions, and provide best practices for data collection and cause analysis. |
| 21 | + |
| 22 | +## Troubleshooting checklist |
| 23 | + |
| 24 | +Use this checklist for systematic troubleshooting: |
| 25 | + |
| 26 | +- **Check the error messages and event logs** |
| 27 | + - Note the exact wording, event IDs, and timing. |
| 28 | +- **Assess available host resources** |
| 29 | + - CPU, memory, storage, and network availability. |
| 30 | +- **Review what changed recently** |
| 31 | + - Updates, configuration, hardware, or firmware changes. |
| 32 | +- **Verify VM and host configuration** |
| 33 | + - Startup RAM, CPU count, disk and network settings. |
| 34 | +- **Check for storage connectivity and availability** |
| 35 | + - Disk health, cluster state, network storage paths. |
| 36 | +- **Test VM login and domain trust** |
| 37 | + - For domain-attached systems, make sure that trust isn't broken. |
| 38 | +- **Review failover clustering and quorum:** |
| 39 | + - Node status, cluster logs, and network configuration. |
| 40 | +- **Check for antivirus and security interference** |
| 41 | + - Recent AV/EDR changes or scan activity. |
| 42 | +- **Verify registry and file and folder permissions** |
| 43 | + - Check especially for Hyper-V process-related subkeys and folders. |
| 44 | +- **Check for known bugs or hotfixes** |
| 45 | + - Review Microsoft documentation and recent release notes. |
| 46 | + |
| 47 | +## Common issues and solutions |
| 48 | + |
| 49 | +The following sections detail the most common failure modes and provide step-by-step solutions. |
| 50 | + |
| 51 | +### VM doesn't start, insufficient memory and resources |
| 52 | + |
| 53 | +#### Symptoms |
| 54 | + |
| 55 | +- Error: "Failed to initialize memory: Insufficient memory (0x8007000E)." |
| 56 | +- Error: "Virtual machine failed to start due to insufficient memory." |
| 57 | +- Hosts or VMs are unresponsive after updates or restart. |
| 58 | + |
| 59 | +#### Resolution |
| 60 | + |
| 61 | +1. Review host memory usage in Hyper-V Manager or Task Manager. |
| 62 | +2. Reduce the VM startup memory value (**Hyper-V Manager** > **VM** > **Settings** > **Memory**). |
| 63 | +3. Increase physical RAM on the host. |
| 64 | +4. If using dynamic memory, set reasonable minimums and maximums to avoid overallocation. |
| 65 | +5. Restart the VM. |
| 66 | + |
| 67 | +### VM fails and returns "The data is invalid" (0x8007000D) or certificate or registry errors |
| 68 | + |
| 69 | +#### Symptoms |
| 70 | + |
| 71 | +- Error: "The data is invalid. (0x8007000D)" |
| 72 | +- Event logs: ACCESS DENIED when accessing registry keys. |
| 73 | +- VMs don't start after a recent update (for example, KB5051979). |
| 74 | + |
| 75 | +#### Resolution |
| 76 | + |
| 77 | +1. Use ProcMon to identify ACCESS DENIED registry events for vmwp.exe. |
| 78 | +2. Correct permissions on the relevant keys (for example, HKU\.DEFAULT\Software\Policies\[Vendor]\SystemCertificates\CA): - Open regedit as administrator. |
| 79 | + - Right-click > "Permissions" > add or adjust the necessary users and groups. |
| 80 | +3. Validate and repair digital signatures on key DLLs using Sysinternals sigcheck. |
| 81 | +4. Make sure that required antivirus/EDR exclusions are available for Hyper-V directories. |
| 82 | +5. Check disk and network adapter configuration—remove and re-add if necessary. |
| 83 | +6. Restart the host and test VM startup. |
| 84 | + |
| 85 | +### VM shows reduced CPU and memory after upgrade |
| 86 | + |
| 87 | +#### Symptoms |
| 88 | + |
| 89 | +- Device Manager shows CPUs, but Task Manager/MSinfo shows fewer than assigned. |
| 90 | +- Major performance drop after updating the VM or Hyper-V host. |
| 91 | +- Only affects VMs upgraded from older OS versions. |
| 92 | + |
| 93 | +#### Resolution |
| 94 | + |
| 95 | +1. Remove any numproc value from BCD: |
| 96 | + |
| 97 | + ```console |
| 98 | + bcdedit /deletevalue {default} numproc |
| 99 | + ``` |
| 100 | + |
| 101 | +2. Set registry subkeys for speculative execution fix: |
| 102 | + |
| 103 | + ```plaintext |
| 104 | + reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f |
| 105 | + reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f |
| 106 | + ``` |
| 107 | + |
| 108 | +3. Retart the VM. |
| 109 | +4. Verify CPU and memory recognition through Task Manager and PowerShell. |
| 110 | + |
| 111 | +### Disk or file system corruption, can't start, delete, or attach disks |
| 112 | + |
| 113 | +#### Symptoms |
| 114 | + |
| 115 | +- Error: "Failed to open because of error. The file or directory is corrupted and unreadable." |
| 116 | +- Error: 0x80070570 when deleting a file. |
| 117 | +- Event IDs: 8, 153, 129 for disk failures or resets. |
| 118 | + |
| 119 | +#### Resolution |
| 120 | + |
| 121 | +1. Try file system repair: |
| 122 | + |
| 123 | + ```console |
| 124 | + chkdsk [drive]: /f |
| 125 | + ``` |
| 126 | + |
| 127 | +2. Back up all critical data before repair if possible. |
| 128 | +3. For VM config/VHD corruption: |
| 129 | + - Create a new VM, and attach the existing (repaired) VHD/VHDX. |
| 130 | + - Start from recovery media, if it's necessary, and repair Windows (use sfc /scannow, startrec /fixstart). |
| 131 | +4. Update any outdated storage or network drivers and firmware. |
| 132 | +5. Verify the cluster quorum and storage path. |
| 133 | + |
| 134 | +### Cluster and CSV issues: Paused state, restarts, unexpected failover |
| 135 | + |
| 136 | +#### Symptoms |
| 137 | + |
| 138 | +- Event ID 5120 (Cluster Shared Volume paused state) |
| 139 | +- Event ID 1135 (Node removal from cluster) |
| 140 | +- Cluster logs of resource failures, missed heartbeats |
| 141 | +- VMs unexpectedly restart or fail over |
| 142 | + |
| 143 | +#### Resolution |
| 144 | + |
| 145 | +1. Update all storage and network adapter drivers and firmware on all cluster nodes. |
| 146 | +2. Check and adjust cluster quorum settings as necessary. |
| 147 | +3. Remove any third-party antivirus/EDR or exclude cluster, Hyper-V, and storage directories according to Microsoft guidance. |
| 148 | +4. Investigate recent hardware and network changes (switch modules, cables, firewalls). |
| 149 | +5. Rebalance VM workloads across cluster nodes. |
| 150 | +6. Use the following commands to generate and collect cluster logs: |
| 151 | + |
| 152 | + ```powershell |
| 153 | + Set-ClusterLog -UseLocalTime -Level 5 -Destination C:\temp |
| 154 | + ``` |
| 155 | + |
| 156 | +7. Work with storage and network vendors if hardware issues or repeated error IDs are found in logs. |
| 157 | + |
| 158 | +### Domain trust and aAuthentication or login failures |
| 159 | + |
| 160 | +#### Symptoms |
| 161 | + |
| 162 | +- Error: "The trust relationship between this workstation and the primary domain failed." |
| 163 | +- Can't log in through Hyper-V Manager, but RDP works. |
| 164 | +- VMs are stuck at "Please wait" or can't log in. |
| 165 | + |
| 166 | +#### Resolution |
| 167 | + |
| 168 | +1. Remove the VM from the domain, and then rejoin it. |
| 169 | +2. Check and correct the computer account status in Active Directory. |
| 170 | +3. For sign-in errors, clean up old profiles or check for GPO or profile corruption. |
| 171 | +4. Make sure that domain controllers are healthy and reachable from VM/hypervisor. |
| 172 | + |
| 173 | +### Performance issues: slow VM, high latency, app stops responding |
| 174 | + |
| 175 | +#### Symptoms |
| 176 | + |
| 177 | +- Jobs or backups take two-to-three times longer than usual. |
| 178 | +- Disk idle time is low, average disk latency greater than 25ms. |
| 179 | +- Event logs show repeated entries of "I/O request took XXXXX ms to complete." |
| 180 | +- VM is unresponsive, especially during heavy I/O. |
| 181 | + |
| 182 | +#### Resolution |
| 183 | + |
| 184 | +1. Run disk and network performance monitoring: |
| 185 | + |
| 186 | + ```console |
| 187 | + logman create counter PerfLog-Short-Interval -f bincirc -si 00:00:01 -o c:\Temp\ percentComputerName percent_PerfLog-Short-Interval.blg -c \Memory\\* \Network Interface(\*)\\* \Processor(\*)\\* \PhysicalDisk(\*)\\* \LogicalDisk(\*)\\* |
| 188 | + logman start PerfLog-Short-Interval |
| 189 | + logman stop PerfLog-Short-Interval |
| 190 | + ``` |
| 191 | + |
| 192 | +2. Identify storage and network bottlenecks. Update drivers and firmware. |
| 193 | +3. Distribute heavy workloads across separate hosts and storage arrays. |
| 194 | +4. Work with application vendors if issue appears in only specific workloads. |
| 195 | +5. Check for and eliminate network misconfiguration (disable or enable VMQ, RSS, and so on). |
| 196 | +6. Restart VMs or hosts as necessary to clear hardware or driver lockups. |
| 197 | + |
| 198 | +## Common issues quick reference table |
| 199 | + |
| 200 | +| Symptom | Root cause | Resolution | |
| 201 | +| --- | --- | --- | |
| 202 | +| "Insufficient memory" / (0x8007000E) | Host lacks free RAM, oversubscription | Add RAM to host or reduce VM startup memory | |
| 203 | +| "The data is invalid" (0x8007000D); VMwp.exe ACCESS DENIED in logs | Registry or certificate permission errors | Fix registry permissions, validate signatures, set AV exclusions | |
| 204 | +| Only some CPUs recognized, perf drops less than 50 percent after upgrade | start configuration or registry limit | Remove BCD numproc, add registry FeatureSettingsOverride/Mask, restart | |
| 205 | +| File system errors, for example, 0x2; chkdsk errors; can't delete file | Corrupt NTFS metadata or VM files | Run chkdsk /f, back up, attach VHD to new VM, repair or restore | |
| 206 | +| CSV paused (Event 5120); Node removal (Event 1135); restarts | Network, driver, or storage issues, AV | Update drivers and firmware, check cluster config, remove or adjust AV | |
| 207 | +| "Domain trust failed"; Hyper-V Manager login only fails | Broken trust relationship or AD/GPO issue | Rejoin domain, check AD account, clear cached credentials | |
| 208 | +| Performance drops (Disk idle less than 95 percent, latency greater than 25ms, Event 9, 153, and so on) | Storage/network bottleneck or cache configuration | Update firmware, move VMs, adjust workload balance, review cache | |
| 209 | + |
| 210 | +## Data collection |
| 211 | + |
| 212 | +Before you contact Microsoft Support, you can gather the following information about your issue. |
| 213 | + |
| 214 | +- **Event logs:** C:\Windows\System32\winevt\logs\system.evtx, application.evtx |
| 215 | +- **Cluster logs:** Use Set-ClusterLog to export diagnostic information |
| 216 | +- **Performance logs:** Use Perfmon/logman |
| 217 | +- **Storage/network driver and firmware inventory:** Pull by using device manager or Get-WmiObject Win32_PnPSignedDriver |
| 218 | +- **Registry exports:** Use regedit to save and analyze suspect keys (for example, under Memory Management) |
| 219 | +- **Screenshots:** Of errors, settings dialogs, device manager, and so on |
| 220 | +- **Active Directory logs:** For domain trust and authentication issues |
| 221 | + |
| 222 | +## References |
| 223 | + |
| 224 | +- [Hyper-V troubleshooting](/windows-server/virtualization/hyper-v/) |
0 commit comments