Slow down Windows VM when Cache is in use.


sonuyos

Recommended Posts

Alright, i am facing this issue, where when i am using cache drive

 

example - say sonarr is downloading show on rtorrent and once it is done, rtorrent auto extract.

 

During the extraction process, the VMS just becomes slow as snail, and it shouldnt because the VM is running on a passthrough NVME. It has nothing to do with the disk, the ram and cpu performance is showing normal too. 

Is anything wrong?

Also same thing i noticed in transcoding too, the VM works like a snail when transcoding is in progress,  but the video works without any buffer or anything.

Link to comment
On 2/28/2020 at 11:00 AM, sonuyos said:

Like this - https://prnt.sc/r8ykfe

That is not the ideal way to pass through NVMe SSD. It still requires IO to go through the host which naturally would lag if the host is waiting for other IO to complete.

 

The best way to pass through NVMe is to pass it through using the PCIe method (so like a GPU). You need to first stub it so that it shows up on the Other PCI Devices section of the VM template.

The new (easy) method to stub PCIe device is to install the VFIO-PCI Cfg plugin. Then Settings -> VFIO-PCI Cfg -> tick the device corresponding to your NVMe -> Build VFIO-PCI.CFG file -> Reboot -> select it in the VM template under Other PCI Devices.

Note that any device that is also in the same IOMMU group as the NVMe will also be stubbed by default (i.e. the host can't use it) so make sure the NVMe is in its own IOMMU group first and foremost.

 

Also, you have sdc also "passed through" which is also not the right way to do it. For SATA devices, the best way is to use ata-id (watch SpaceInvader One vid on that topic). Note though that depending on how the SATA disk is being used under the VM, host lag may still carry over to the VM.

Link to comment
51 minutes ago, sonuyos said:

@testdasi i did both passthrough, yet when i use Plex, and it transcodes, the PC goes to hell.

What do you mean by "both passthrough?

It's not possible to do both since PCIe pass through will make the NVMe unavailable for other method.

 

When Plex transcode, is it doing in the VM or in docker? Are the docker core overlapping with your VM core? Beside the NVMe, what other disks / vdisks are used with the VM?

Link to comment

How is your NVMe passed through to the VM? via PCIe method or via the sdx method?

If you are using the sdx method for the NVMe, have you even attempted the PCIe method?

As I mentioned previously, anything other than the PCIe method will to some extent lag under heavy host IO.

 

In addition, your CPU core assignment is not the way to do it.

  • By sharing core between torrent + plex + VM, what do you expect to happen when 1 of the 3 is hammering the CPU?
  • Core 8 and 0 are a pair. They both should not be used by Plex and torrent.
  • For best VM performance, you want to set up CPU isolation to isolate the VM cores for VM use only.

You probably need to watch more SpaceInvader One videos on Youtube.

 

 

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.