Best Practices for Windows VMs in Proxmox VE
Windows VMs run excellently on Proxmox VE, but there are some optimizations that significantly improve performance and stability. In this article, we share our experience.
VM Hardware Configuration
CPU
CPU Type
Choose “host” as CPU type for best performance:
Hardware → Processors → Type: host
This gives the VM access to all CPU features of the host.
Cores vs Sockets
- Windows Desktop: 1 socket, 2-8 cores
- Windows Server: 1-2 sockets, 4-16 cores
- Important: Windows licenses are socket-based
Memory
Ballooning
Disable memory ballooning for stable performance:
Hardware → Memory → Ballooning: No
Huge Pages
Consider 1GB huge pages for large VMs (>32GB RAM).
Storage
Disk Type: SCSI with VirtIO
Always use SCSI controller with VirtIO:
- Hardware → Add → Hard Disk
- Bus/Device: SCSI
- Cache: Write back (with battery/UPS)
- Discard: Yes (for thin provisioning)
- IO thread: Yes
Disk Format
- QCOW2: For backups and snapshots
- RAW: For best performance (on ZFS/LVM)
Windows VirtIO Drivers
Install the VirtIO drivers:
- Download VirtIO ISO
- Mount in VM
- Install:
- Balloon driver
- NIC driver
- SCSI driver
- Serial driver
Network
VirtIO NIC
Always use VirtIO as NIC model:
Hardware → Network Device → Model: VirtIO
Multi-Queue
For high-performance networking, enable multi-queue:
Hardware → Network Device → Multiqueue: 8 (or CPU cores)
Guest Agent
Install the QEMU Guest Agent for better integration:
- Mount VirtIO ISO
- Install
qemu-ga-x64.msi - Check service status:
1Get-Service QEMU-GA
Guest Agent Benefits
- Correct shutdown
- IP information in UI
- Trim/discard support
- Time synchronization
Windows Optimizations
Inside the VM
1. Power Plan
Set to High Performance:
| |
2. Visual Effects
Minimize for server workloads:
System Properties → Performance Settings → Adjust for best performance
3. Services
Consider disabling unnecessary services:
- Windows Search (for servers)
- Superfetch/SysMain
- Print Spooler (if not needed)
4. Disk Optimizations
| |
Registry Tweaks
Timer Resolution
For better gaming/workload performance:
| |
Backup Considerations
QEMU Guest Agent
Essential for consistent backups:
- VSS (Volume Shadow Copy) support
- Application-consistent snapshots
Backup Strategy
Proxmox Backup Server:
- Daily incrementals
- Weekly full backups
- Retention: 30 days
Monitoring
Key Metrics
Monitor these metrics:
- CPU ready time (<5% is good)
- Memory ballooning
- Disk latency (<10ms)
- Network packet loss
Tools
- Proxmox built-in monitoring
- Windows Performance Monitor
- Grafana + InfluxDB (optional)
Common Issues
“No boot disk found”
- Check boot order
- VirtIO SCSI driver installed?
Slow network
- Using VirtIO NIC?
- Multi-queue configured?
High CPU usage
- Check CPU ready time
- Sufficient memory allocated?
- Ballooning disabled?
Performance Comparison
| Configuration | IOPS | Latency | CPU Usage |
|---|---|---|---|
| IDE (default) | 5K | 15ms | 100% |
| SCSI (LSI) | 15K | 8ms | 80% |
| SCSI (VirtIO) | 50K+ | 2ms | 40% |
Average values on NVMe storage
Conclusion
With the right configuration, Windows VMs run excellently on Proxmox VE. The key takeaways:
- Use VirtIO for storage and network
- Install Guest Agent
- Optimize Windows settings
- Monitor performance metrics
Need help optimizing your Windows VMs? Contact us.
