VirtioFS Support Page


Recommended Posts

  • 2 weeks later...
  • 2 weeks later...

New stable drivers seem fine. Speed is still terrible for me on Windows 11 at only 40 MiB/s or so. I tried to setup a clean Windows 10 VM and transfers are about 100 MiB/s for the exact same file.

 

Samba on Windows 11 transfers this 2 GiB file at 650 MiB/s with explorer. No idea what could be causing the discrepancy, but glad its at least stable even if I won't be using it.

Link to comment
20 hours ago, johnsanc said:

New stable drivers seem fine. Speed is still terrible for me on Windows 11 at only 40 MiB/s or so. I tried to setup a clean Windows 10 VM and transfers are about 100 MiB/s for the exact same file.

 

Samba on Windows 11 transfers this 2 GiB file at 650 MiB/s with explorer. No idea what could be causing the discrepancy, but glad its at least stable even if I won't be using it.

I found that isolating a bunch of CPU threads for my VM has drastically improved performance. Do you have any isolation or pinning configured?

Link to comment

Yes I do have a setup like yours 16/24 are allocated to the VM. The test Windows 10 VM i setup as a test only had 2/24 allocated and performed better (but still not great). I am out of ideas as to why my Windows 11 VM would perform so poorly... the only major difference is that its running on a separate NVME instead of a vdisk on my cache pool.

I also noticed worse performance of remote desktop (RDP) whenever VirtioFS is enabled and memorybacking configured. As soon as I disable these RDP is much snappier.

Link to comment
35 minutes ago, johnsanc said:

Yes I do have a setup like yours 16/24 are allocated to the VM. The test Windows 10 VM i setup as a test only had 2/24 allocated and performed better (but still not great). I am out of ideas as to why my Windows 11 VM would perform so poorly... the only major difference is that its running on a separate NVME instead of a vdisk on my cache pool.

I also noticed worse performance of remote desktop (RDP) whenever VirtioFS is enabled and memorybacking configured. As soon as I disable these RDP is much snappier.

Sorry I'm not having this issue, and I also have an nvme boot drive passed through. I was having some issues with RDP getting laggy but I think isolating my cores helped with that.

 

Maybe use Driver Store Explorer to blow out all of the virtio drivers and install fresh.

 

Or recreate your VM using the same disk, maybe a fresh XML will help?

Edited by mackid1993
Link to comment
52 minutes ago, johnsanc said:

I'm not familiar with driver store explorer... I'll look into that. I do have issues with installing new drivers. The installer always fails and has to rollback so I need to manually install each one.

It sounds like there's some issue with your VM, it may be time for a clean install of Windows.

Link to comment

Everything else with the VM appears to work just fine. I wiped out all old virtio-win drivers and guest tools and reinstalled. After a bit of googling was able to finally completely uninstall everything without the installer error, so that's good. Also verified I have no old drivers and only the latest is used.

Either way, still the same performance issue. I'm not completely reinstalling windows just to mess with this. I'll just stick with Samba since its way more performant in every scenario I've tested with the latest drivers.

Link to comment
1 hour ago, johnsanc said:

Everything else with the VM appears to work just fine. I wiped out all old virtio-win drivers and guest tools and reinstalled. After a bit of googling was able to finally completely uninstall everything without the installer error, so that's good. Also verified I have no old drivers and only the latest is used.

Either way, still the same performance issue. I'm not completely reinstalling windows just to mess with this. I'll just stick with Samba since its way more performant in every scenario I've tested with the latest drivers.

The advantage of VirtoFS is not performance. It's that the volumes show up as local drives which helps with compatibility for certain programs that don't work with network drives. 

Link to comment

OK so I tried adjusting my CPU isolation and pinning and I got the speed up 60 MiB/s consistently now by shifting all the CPUs for the VM to higher numbers and leaving lower numbers for Unraid.

 

However, I also noticed some weird behavior. When I am copying to my VM's NVME from the virtiofs drive, all CPU graphs in Windows stop completely and then resume once the transfer is complete. I checked both task manager and process explorer. I also noticed that a single thread was at 100% whenever I am moving something. What is going on here? Is that normal?

viofs-cpu.thumb.png.e34f894a34f31e3f7ef53d1eec2b91b8.png

Edited by johnsanc
Link to comment
16 hours ago, johnsanc said:

OK so I tried adjusting my CPU isolation and pinning and I got the speed up 60 MiB/s consistently now by shifting all the CPUs for the VM to higher numbers and leaving lower numbers for Unraid.

 

However, I also noticed some weird behavior. When I am copying to my VM's NVME from the virtiofs drive, all CPU graphs in Windows stop completely and then resume once the transfer is complete. I checked both task manager and process explorer. I also noticed that a single thread was at 100% whenever I am moving something. What is going on here? Is that normal?

viofs-cpu.thumb.png.e34f894a34f31e3f7ef53d1eec2b91b8.png

Unraid prefers lower cores usually. I copied a file to my nvme from the VirtioFS drive and nothing froze, the graphs continued to move.

I think there is something wrong with your Windows installation. This doesn't appear to be an issue with VirtioFS. I cannot repro any of your problems.

My only other suggestion is it may be an AMD specific issue as my system is an Intel i7 12700k.

 

At a minimum I would try a  dism /Online /Cleanup-Image /RestoreHealth command or a repair install of Windows. Since your second VM didn't have these issues I'm inclined to believe you have a corrupted Windows installation.

Link to comment
18 hours ago, johnsanc said:

OK so I tried adjusting my CPU isolation and pinning and I got the speed up 60 MiB/s consistently now by shifting all the CPUs for the VM to higher numbers and leaving lower numbers for Unraid.

 

However, I also noticed some weird behavior. When I am copying to my VM's NVME from the virtiofs drive, all CPU graphs in Windows stop completely and then resume once the transfer is complete. I checked both task manager and process explorer. I also noticed that a single thread was at 100% whenever I am moving something. What is going on here? Is that normal?

viofs-cpu.thumb.png.e34f894a34f31e3f7ef53d1eec2b91b8.png

You can also try the newer Rust version of Virtiofsd: https://gitlab.com/virtio-fs/virtiofsd/-/jobs/artifacts/main/download?job=publish

To install it sftp to your server and create a folder in /boot called virtiofsd and copy the executable there.

Then stop all VMs using Virtiofs.

Then open a terminal and type:

nano /boot/config/go

Then add the following to your go file:

#replace Virtiofsd with Rust version
mv /usr/libexec/virtiofsd /usr/libexec/virtiofsd.old
cp /boot/virtiofsd/virtiofsd /usr/libexec/virtiofsd 
chmod +x /usr/libexec/virtiofsd 

Then either run the 3 commands manually or reboot your server.

 

This may or may not help, but the version of Virtiofsd that ships with Unraid is very old so it may actually end up helping.

 

Link to comment

Completely reinstalled Windows 11, exact same performance issues and weirdness with a single thread used at 100% and Windows performance graphs halting while a transfer is running. Yes I am using the Rust version. I will wait until other people with AMD CPUs test this out. I am completely out of ideas.

Edit: Also confirmed that the regular non-Rust version has the exact same issue.

Edited by johnsanc
Link to comment
12 hours ago, johnsanc said:

Completely reinstalled Windows 11, exact same performance issues and weirdness with a single thread used at 100% and Windows performance graphs halting while a transfer is running. Yes I am using the Rust version. I will wait until other people with AMD CPUs test this out. I am completely out of ideas.

Edit: Also confirmed that the regular non-Rust version has the exact same issue.

It must be an amd issue. Maybe open a bug report with the virto win team?

Link to comment
55 minutes ago, johnsanc said:

Just for good measure, spun up a completely new Window 11 VM using a vdisk instead of NVME, same issue. Also it locks up user input on VNC while its transferring.

Maybe try emulating your CPU instead of CPU passthrough and a test to see if speeds improve. Not saying you should leave it that way but it may be worth trying to see if it's an AMD issue.

Link to comment

Thanks for the suggestion. Same issue though, ~40-60 MiB/s and a single cpu thread gets pegged to 100%. With emulated CPUs however the performance graph in Windows doesn't lock up. I think we just need more people trying this out with different hardware configurations. So far everyone I have asked uses Intel CPUs and it seems to work as expected.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.