Ultimate Guide: Running Windows 10 on Proxmox VE with Optimal Performance

Aman Ullah Juman
5 min readFeb 14, 2025

--

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 (or local-lvm for better raw performance)
  • Disk Size: 100GB (Adjust as needed)
  • Format: Raw (Fastest, but qcow2 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

  1. Start the VM and boot from the Windows 10 ISO.
  2. 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:

  1. Open Device Manager → Look for missing drivers.
  2. Mount the VirtIO ISO in the VM.
  3. Manually install drivers from:
  • Balloon → Memory Ballooning (optional)
  • NetKVM → Network Driver
  • vioscsi → SCSI Controller Driver
  • qemu-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!

--

--

No responses yet