May 9, 20206 yr Hello! I have recently turned my 3900x 2 GPU system into a 2-player VR system using unraid. I am very satisfied (will likely use unraid for as long as it's around now) and performance is outstanding, but I figure there is always room for improvement and was wondering if the members here might know some optimizations. Currently I have it split into two VMs Core 1 and Hyperthread = Dedicated to Unraid, no dockers running. Core 2-6 = Dedicated to VR VM 1, uses two SSDs passed through. Core 7-12 = Dedicated to VR VM 2, uses one SSD and one NVME passed through. I have isolated the cores for the VMs, and pinned the emulation functions to core 1 and its hyperthread as well. There's a few things I'm wondering. I have seen people pin IOthreads to the same core as unraid, is this something I should be doing to further isolate the VMs, and if so, how in the world do I do that? I notice that even when both VMs are playing VR simultaneously, Core 1 only uses around 20% cpu, would it be possible to assign the hyperthread of core 1 to VM 1 to use some of that free CPU, or would that interfere with things? Would it interfere if I isolated the hyperthread? I've had no issue with the GPU's, is there any performance benefit to passing through BIOS's in that case or is that only for compatibility reasons? I am severely crippling vr capability by using dual-channel memory for two gaming vms? Is the penalty less than running them both effectively on single channel since they won't always be reading ram simultaneously even when both gaming (this is what I hope is the case cause threadripper is expensive)? Finally, am I screwing up VM 2 by pinning the emulation functions to core 1, when that core is on a different CCD? Thank you for any suggestions, and forgive my selfishness for asking this stuff when it's already working great. Edited May 9, 20206 yr by Jeremy Nelson
May 13, 20206 yr Author I answered some of my own questions and was disappointed. When both VMs were running simultaneously performance for Shadow of the Tomb Raider dropped between 14-19% compared to if either VM was running alone. This means there is a penalty for running dual-channel memory, but it's not the equivalent of running one or the other vms alone on single channel (which I think can reach 30%). This unfortunately means Threadripper is a way to go to not pay that 14-19% penalty but it's just not viable compared to running two separate machines since it costs 3x as much. Second I tried to isolate the hyperthread from the first core, and attached that to one of the VMs, and pinning emulator functions to only the main thread of the first core (to isolate it's hyperthread as much as possible). In benchmarks there was no benefit to CPU scores and maybe a slight penalty. Still wondering how to isolate IOthreads and whether that's something I should do (maybe it doesn't apply since I'm passing through all the disks?) can't find much info out there. I think i'll stick with my unraid setup even though I have the parts for two separate machines, because it's slightly cheaper for my needs since I do need 12-16 cores in one machine for some tasks anyway, it's fun, and easier to manage one machine. I'll sell the other computer I have I think. Edited May 13, 20206 yr by Jeremy Nelson
Archived
This topic is now archived and is closed to further replies.