Ultimate Guide: Running Windows 10 on Proxmox VE with Optimal Performance
Perfect Configuration for Ryzen 9 7950X3D, NVMe SSD, and 128GB RAM
If you’re looking to run Windows 10 on Proxmox VE, optimizing your virtual machine (VM) for performance, stability, and efficiency is crucial. This guide walks you through the best possible configuration using Proxmox VE, ensuring smooth operation on a high-end system like the AMD Ryzen 9 7950X3D, NVMe SSD, and 128GB RAM.
1. Creating the Windows 10 VM in Proxmox
Step 1: Upload the Necessary ISOs
Before creating the VM, you need two ISO files:
- Windows 10 ISO (Download from Microsoft)
- VirtIO Drivers ISO (Download from Fedora’s website for best performance)
Upload both ISOs to your Proxmox storage (local
or local-zfs
).
2. VM Configuration
Step 2: OS Settings
- Guest OS:
Microsoft Windows
- Version:
11/2022/2025
(This ensures compatibility) - Check “Add additional drive for VirtIO drivers” → Select the VirtIO ISO
Why? VirtIO drivers improve disk and network performance using paravirtualized drivers instead of emulated hardware. Also, by default, Windows will be unable to detect disk drivers, so you will be required to do so during installation.
Step 3: System Settings
- Machine:
q35
(For modern hardware compatibility) - BIOS:
OVMF (UEFI)
(Required for Secure Boot & TPM) - Check “Add EFI Disk” (Stores UEFI firmware variables)
- SCSI Controller:
VirtIO SCSI single
(Best performance for Windows) - Check “QEMU Agent” (Allows Proxmox to communicate with the guest OS)
- Check “Add TPM” →
Version 2.0
(Required for Secure Boot & BitLocker) - Uncheck “Pre-Enroll Keys” (Secure Boot should be disabled for now)
Why? TPM 2.0 and UEFI ensure compatibility with modern Windows features like BitLocker, Secure Boot, and DirectStorage.
Step 4: Disk Configuration
- Bus/Device:
SCSI 0
- SCSI Controller:
VirtIO SCSI single
(Best performance) - Storage:
local-zfs
(orlocal-lvm
for better raw performance) - Disk Size:
100GB
(Adjust as needed) - Format:
Raw
(Fastest, butqcow2
is fine if you need snapshots) - Cache:
Write Back
(Requires UPS to prevent data loss) - Check “IO Thread” (Improves performance)
- Check “Discard” (TRIM support for SSDs)
- Check “SSD Emulation” (Ensures Windows recognizes it as an SSD and if you use SSD or NVME)
Why? This setup optimizes NVMe SSD performance, ensuring Windows benefits from high-speed storage.
Step 5: CPU Configuration
- Sockets:
1
- Cores:
4
(or more, based on your needs) - Type:
EPYC-Rome
(Closest match for Ryzen 9 7950X3D) - Enable “spec-ctrl” and “ibpb” (Spectre mitigations)
- Enable “virt-ssbd” and “amd-ssbd” (For AMD security features)
Why? EPYC-Rome
Optimizes CPU performance and compatibility while avoiding Intel-specific CPU flags. If you don’t know which one to pick, select Host
.
Step 6: Memory Configuration
- Memory:
16GB
(or more, depending on usage) - Minimum Memory:
8GB
- Uncheck “Ballooning Device” (For stable performance. However, if you have a low RAM host, it’s good to check)
Why? Disabling memory ballooning ensures consistent performance without Proxmox dynamically resizing RAM.
Step 7: Network Settings
- Model:
VirtIO (paravirtualized)
(Best performance) - Bridge:
vmbr2
(Your network bridge) - Enable “Multiqueue” (Set to match vCPUs, e.g., 4 if using 4 cores)
- MTU:
9000
(If your network supports Jumbo Frames) (Optional)
Why? VirtIO networking significantly improves throughput and latency, perfect for high-speed networking.
3. Installing Windows 10 and VirtIO Drivers
Step 8: Boot and Install Windows
- Start the VM and boot from the Windows 10 ISO.
- When the installer asks for a storage device, load the VirtIO drivers:
- Click “Load driver” and browse to the VirtIO ISO (
D:\
drive). - Navigate to viostor/w10/amd64/ and install the drivers.
Continue with Windows installation as usual.
Step 9: Install VirtIO Drivers in Windows
Once Windows 10 is installed:
- Open Device Manager → Look for missing drivers.
- Mount the VirtIO ISO in the VM.
- Manually install drivers from:
Balloon
→ Memory Ballooning (optional)NetKVM
→ Network Drivervioscsi
→ SCSI Controller Driverqemu-ga
→ QEMU Guest Agent (For Proxmox compatibility)
Why? These drivers enable optimal disk, network, and memory performance inside Windows.
4. Performance Optimizations
Step 10: Optimize Windows for Virtualization
Inside Windows:
- Set Power Plan to “High Performance”
- Disable Fast Startup (
Control Panel > Power Options
) - Turn Off Windows Indexing on SSD
- Enable TRIM
fsutil behavior set DisableDeleteNotify 0
Why? These tweaks ensure Windows runs at maximum performance without unnecessary background tasks.
Step 11: GPU Passthrough (Optional)
If you want to use a dedicated GPU inside the VM (for gaming or CUDA workloads):
Enable IOMMU in BIOS
- Set
amd_iommu=on
in Proxmox GRUB config. - Pass Through GPU in Proxmox
- Assign PCIe device to the VM.
Install AMD/NVIDIA Drivers in Windows
- Use vendor drivers instead of Windows default ones.
Why? This allows near-native GPU performance inside the VM.
5. Backup & Maintenance
Step 12: Configure Backups
- Enable Proxmox Backup for VM snapshots.
- Enable “dirty-bitmaps” for incremental backups.
- Use ZFS replication (If using ZFS storage).
Why? Regular backups protect against data loss and corruption.
Final Thoughts
Congratulations! 🎉 You’ve successfully set up a Windows 10 VM on Proxmox VE with the best possible performance for your Ryzen 9 7950X3D, NVMe SSD, and 128GB RAM.
Summary of Key Optimizations
✔ VirtIO Drivers for storage & networking
✔ EPYC-Rome CPU type (Best for Ryzen CPUs)
✔ Write Back Cache, IO Thread, and Discard for SSDs
✔ QEMU Guest Agent & High-Performance Power Plan
✔ GPU Passthrough for gaming and CUDA workloads
Next Steps
If you found this guide helpful, drop a comment and let me know how it works for you!
Want to optimize gaming or workstation performance? Let’s dive into GPU tuning next!