Windows 2016 standard edition providing less iops than Windows 10

bsinha

Member
May 5, 2022
59
0
11
We have a Proxmox installation of 5 node cluster, where we run Ceph and ZFS simultaneously. For getting higher iops we use ZFS.

We have configured ZFS (Mirror) with Kingston SEDC500M 1920G and we are getting the following iops with 4k Random write:

Windows 10 - 17K write iops
Windows 2016 server standard edition - 1.7K write iops (Which is too low)

Why so low iops in Windows server 2016?

For your informaiton:
  1. Disk controller for both the VMs are scsi with virtio driver installed.
  2. Both the VMs are provided 8GB 2vCPU and 50GB storage.
  3. Diskspd has been used for evaluating the iops. The command used was:
    Code:
    diskspd -t1 -o32 -b4k -r4k -w100 -d120 -Sh -D -L -c5G .\IO.dat

Windows 10 write iops
1675076250806.png


Windows server 2016 standard edition write iops:
1675076700964.png
 
If you are running Exchange or Active Directory on your server disk write caching is automatically disabled
This is the answer! You can hack around this by setting the caching of the disk to 'unsafe' and writing to a zfs pool that has 'sync=disabled'. Depending on how much you trust your power and hardware, there is no real downside to this as both ZFS and NTFS are COW/Journaled filesystems, so it's unlikely that a power outage will corrupt anything. You'll just lose data if you're extremely unlucky!
 
Do I really need to tweak this setting? Windows 10 VM is running on the same ZFS pool. It is giving 17000 write iops. Look at Windows 2016. It is just giving 1,700 write iops. I don't think it is related to ZFS settings.

I wonder why is this happening. Could it be a driver issue?
 
Do I really need to tweak this setting? Windows 10 VM is running on the same ZFS pool. It is giving 17000 write iops. Look at Windows 2016. It is just giving 1,700 write iops. I don't think it is related to ZFS settings.

I wonder why is this happening. Could it be a driver issue?
No. It's exactly what bpbp said.
 
What I can see, write caching is enabled on both Windows 2016 server and Windows 10. You can see the attached screenshot.

However, Windows server 2016 had been freshly installed. It does not have Active directory or any database available.

Where should I look into now?
 

Attachments

  • Windows10-Write-cache-enabled.png
    Windows10-Write-cache-enabled.png
    350.6 KB · Views: 15
  • Windows 2016 write cache enabled.png
    Windows 2016 write cache enabled.png
    292.6 KB · Views: 15
I just noticed similar iops diff between Windows Clients & Server editions.
Seems "-Sh" / "bypass windows write cache" is ignored by Windows 10/11 while Windows Server honor it.
Correct values are on Windows Server.
Tested with diskSpd.exe & fio.exe , same results , vDisk as VirtIO SCSI Single, Cache=None
Test with Local storage is LVM-Thin and qcow2 over LVM-Thick RAID1
if vDisk is attached as SATA type , both Windows 10 & Windows Server ignore "bypass windows write cache".
iops 1000x too big , bs=4k+1thread+iodepth1
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!