February 11, 20179 yr Hi, I am running a VM with this setup: OS:w10 pro x64 GPU: I passthroughed a r9290 (crimson driver v17.1.2) > seabios CPU: fx8350 (3/4 cores) RAM: 4/5/6 GB I have optimised win10 for gaming, disabling unnecessary services, cortana, etc. Only Steam is installed. My vm runs on an vdisk that runs on an SSD. It is placed in share domains (cache only). Games run on an SSD too, since they are installed in share games (SteamLibrary; cache only). I am running v6.2.4. My system has 8 cores and 16Gb in total. I am benchmarking my gpu with SteamVR Performance Test. Yesterday I could run the test and obtained a bad result:http://i236.photobucket.com/albums/ff75/razzta01/public/r9290%20stock_steamvrtest_zps9dc7gkt9.png Can anyone confirm if really with my gpu and this vm setup you get such a bad result? No OC done yet. What do you get with the same card? Or with a new 1070/1080 nvidia? Also, today I have been not able to redo the same test, windows -after starting the test- tells me I have not enough memory. Why, task manager tells me I have at least 3GB free! On the other hand I could run a 3dmark test. Still a ver poor result. http://i236.photobucket.com/albums/ff75/razzta01/public/r9290_no%20OC_3dmark_zpsmoyhndhf.png Can anyone think why is such a thing happening? I really want to try the game Automobilista (AMS) with this setup, which I have been running on a dedicated pc with a similar setup including my r9290 but with an intel 2500k. On my standalone pc I could achieve solid 90fps. Now hardly 50fps. Anything you can suggest to improve performance?
February 12, 20179 yr Author Hi again! I had time this weekend to tweak my Unraid+gaming vm. I did the following: -installed "Tips and Tweaks" PLUGIN (did change only the following): Disable NIC Flow Control?: yes Disable NIC Offload?: yes Disk Cache 'vm.dirty_background_ratio' (%): 5 Disk Cache 'vm.dirty_ratio (%): 10 Disable FTP Server & Telnet?: yes -added to my syslinux: "isolcpus=2,3,4,5,6,7" ..to isolate this cores from the ones (0,1) that Unraid should only use. I tried again to run SteamVR Performance Test and obtained this result:http://i236.photobucket.com/albums/ff75/razzta01/public/r9290%20stock%20steamvrtest3_after%20optimizing%20unraidampvm_zpsmkmrnodx.png It is better than the las one I scored ,since I get: -no frames limited by cpu -only 33% frames below 90fps (from previous 50%) -more frames rendered So I think the gaming vm has a better performance, what do you think? I would like to hear from you guys what else can I try to get similar performance as gridrunner´s server without investing more $$$ in my hw. I am joking... but maybe other things can be fine tuned. Dlandon also mentions in his first post (Topic: Performance Improvements in VMs by adjusting CPU pinning and assignment ) to isolate those vcpu that only Unraid will use. I just want anyone confirms this is ok before I do it. In my case this is what I think I should add to my xml: <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='5'/> <vcpupin vcpu='2' cpuset='6'/> <vcpupin vcpu='3' cpuset='7'/> <emulatorpin cpuset='0-1'/> </cputune> So, I think passing through the SSD that holds the vidsks would improve performance further (not like sitting in my cache folder disk as it is now). What else should I try?
February 13, 20179 yr isolating cpus keeps unRaid from accessing them, giving the cores you assign to the vm only to the vm. You have to modify the syslinux.cfg file to isolate the cores. some people feel windows likes to be on its own hyper threaded cores. (i believe windows doesn't care) BUT, it has been shown on some systems to help clear issues if windows is only running on isolated HT cores. Assuming your thread pairings are standard, you would isolate cores (at a minimum) 2,3,7,8 in the syslinux.cfg, then assign those 4 cores to the vm, and set the emulator pin to '1' (you don't need it floating between core 0-1. ) As you have it now, you are running half your threads on the same cores that unRaid is running on. Again, assuming you have standard thread pairings.
February 13, 20179 yr Author Hi, As gridrunner says here (https://lime-technology.com/forum/index.php?topic=49319.0 ... Reply #7) amd cpu does not hyperthreading so it is just 8 plain cores (no pairing). I have not tested it though. It would be nice to hear from you guys who own the same CPU what is your experience with pairing cores? Will try to "set the emulator pin to '1'" and see how it performs. No more feedback on my previous questions? I would be interested in improving the performance of my rig further.
February 13, 20179 yr amd stuff always throws me.... i should get one and play around. you won't gain much from chasing the emulator pin, but every little bit helps. your cpu has "modules." interesting . I wonder if you're using "cores: from different modules? Or if it is using only 2 modules with the 4 cores inside and cramming the data through the 2 modules 2 FPU units is the bottleneck for performance. What does unRaid show anything about pairing (if at all)? Maybe try setting the vm to 2,3,6,7 and benchmark?
February 13, 20179 yr Author Hi, This is what unraid shows to me: root@Tower:~# cat /proc/cpuinfo | grep "\(core id\|processor\)" processor : 0 core id : 0 processor : 1 core id : 1 processor : 2 core id : 2 processor : 3 core id : 3 processor : 4 core id : 4 processor : 5 core id : 5 processor : 6 core id : 6 processor : 7 core id : 7 After isolating the cores I get this: root@Tower:~# cpufreq-info -o minimum CPU frequency - maximum CPU frequency - governor Before I got this:http://i236.photobucket.com/albums/ff75/razzta01/public/isolating%20cpu_zpsma9ssqlg.png your cpu has "modules." interesting . I wonder if you're using "cores: from different modules? Or if it is using only 2 modules with the 4 cores inside and cramming the data through the 2 modules 2 FPU units is the bottleneck for performance. What does unRaid show anything about pairing (if at all)? I am not an expert, but based on your thoughts I read this: https://www.reddit.com/r/buildapc/comments/1e8226/discussion_amds_module_architecture_the_fx_8350/ I would guess what I have done is isolating 1 module for Unraid (0-1) and assigning the other 3 modules (2-7) to my gaming vm, right? How can I check if I am using cores from different modules? I need to know this to change my isolcpus=2,3,4,5,6,7 to what you suggest, or am I wrong? Another issue: do you know how I can let my cores run at a lower frequency when not gaming? Maybe Tips and Tweaks > CPU Scaling Governor: > ?. Actually I have On Demand selected but it always runs at full frequency. I need to check here and in the BIOS. Any hints? Also, have you tried this: just posted on gridrunners youtube channel: -Have you tried to measure the performance increase (theoretical) of "vdisk on ssd cache" vs "vdisk on SSD outside of the array (unassigned devices)"? -Is there actually any difference in performance between "vdisk on SSD outside of the array (unassigned devices)" and "windows clean install on SSD outside of the array (unassigned devices)"? Rgds.
February 13, 20179 yr I was actually reading that same reddit article to learn more about that chip architecture. thanks for posting the "thread" pairing. that is what I was curious about. on intel chips it would not list the pairs sequentially. your isolcpus would be correct then, isolating 3 modules, since it says your "pairs" are 0,1 2,3 4, 5 6,7 so the xml you posted <cputune> <vcpupin vcpu='0' cpuset='4'/> <vcpupin vcpu='1' cpuset='5'/> <vcpupin vcpu='2' cpuset='6'/> <vcpupin vcpu='3' cpuset='7'/> <emulatorpin cpuset='0-1'/> </cputune> is putting the vm on 2 modules. What I would try is using cpus 2-7 and run your test, then I would try using only cpus 2,4,6. Its technically is half as powerful, but allows each core to run at maximum without sharing resources with another core and will deliver a slight improvement in single core performance. It might not be what you need, but will only cost a little time in trying. cpu scaling: I would of course check bios but also search the boards. I believe there have been a few recent discussions about amd processors and cpu scaling not working properly. I don't know if they found a solution. gridrunner already did a vdisk performance testing video: https://www.youtube.com/watch?v=QaB9HhpbDAI
February 14, 20179 yr Author Gridrunners replay: It shouldn't make any different to performance running a vdisk from an SSD cache or an SSD outside the array. However, that said performance would be less on the cache if the cache was being used by another process at the same time the VM was running. So having a separate disk for vdisks is beneficial to keep them separate from other server disk read and writes. The performance difference between a vdisk outside the array and a clean install on an SSD is very small. The clean install is very slightly faster when I have tested it. But there is another reason why people pass through a disk and not use a vdisk. As a vdisk is one file should that file become corrupt then everything on vdisk isn't accessible. On a physical drive, the data isn't in just one file so file corruption wouldn't effect everything. On the other side of that vdisks are easier to backup. What I do on my windows gaming VM I have my os drive as a vdisk. But then I install all my games on a physical disk outside of the array that's formatted in NTFS.?
February 14, 20179 yr Author Hi, I appreciate if you could confirm that I understood what you mean. so the xml you posted...is putting the vm on 2 modules. I guess you are looking at " cpuset='4'" till "cpuset='7'" since the last 2 modules are configured by 4-5 and 6-7 cpuset´s, right? What I would try is using cpus 2-7 and run your test My xml should then look like this? <vcpu placement='static'>6</vcpu><cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='3'/> <vcpupin vcpu='2' cpuset='4'/> <vcpupin vcpu='3' cpuset='5'/> <vcpupin vcpu='4' cpuset='6'/> <vcpupin vcpu='5' cpuset='7'/> <emulatorpin cpuset='0-1'/> </cputune> hen I would try using only cpus 2,4,6 and like this? <vcpu placement='static'>3</vcpu><cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='4'/> <vcpupin vcpu='2' cpuset='6'/> <emulatorpin cpuset='0-1'/> </cputune>[/code]
February 14, 20179 yr correct. It's basically time to experiment! you can change emulator pin to just 1. it won't need 2 cores, and unraid will prefer to use 0 (they say)
February 14, 20179 yr Author Hi, I have been experimenting. Almost tried any combination: -2,4,6 -0,2,4,6 -1,2,4,6 and the same with 3,5,7. Also sometimes I selected either: <emulatorpin cpuset='1'/> or <emulatorpin cpuset='0'/> or <emulatorpin cpuset='0-1'/>. The best performance I got was <cputune> <vcpupin vcpu='0' cpuset='0'/> <vcpupin vcpu='1' cpuset='3'/> <vcpupin vcpu='2' cpuset='5'/> <vcpupin vcpu='3' cpuset='7'/> <emulatorpin cpuset='1'/> </cputune> This is what I got: http://i236.photobucket.com/albums/ff75/razzta01/public/r9290%20stock%20steamvrtest4_after%20optimizing%20unraidampvm_0%203%205%207%20only_cpuset1_zpsfrwzzra5.png I think it is a good gain over yesterday´s performance. Will keep on testing with my actual simracing game (automobilista) to see if the same gain is noticible. I think anyway my cpu and gpu can´t deliver more (unless I OC them). I tried today from both vdisk on SDD (cache only) and (unassigned devices): obtained better results with SSD (Cache only used for vm´s).
February 15, 20179 yr Author Hi, I was checking the specs of my MB and realized: -I have one nvidia GT610 in my primary (first) PCIe 2.0 x16 slot (dual x16/x16) and -I have my amd r9290 in my third slot (which is PCIe 2.0 x4) ! I have a free fourth slot that is PCIe 2.0 x16 slot (dual x16/x16). I hope this is the reason of the performance diofference of my gaming vm vs baremetal. What do you think? Will check it tomorrow. Time to go to bed. EDIT: Would you recommend some OC to my GPU? If yes have anyone already a stable OC of this GPU?
March 11, 20179 yr @luca2 Did you ever have any luck with improving the performance on this setup? I have the same motherboard/cpu with 2x rx480s and I'm getting similar performance levels. Its playable but not well enough that id want to on a regular basis. Edited March 11, 20179 yr by jwtlake
March 11, 20179 yr Author Yes, I tried and did not get any performance improvement. But watch Spaceinvader´s video in youtube and you can see what can be achieved in terms of performance. I guess my system needs an upgrade.
Archived
This topic is now archived and is closed to further replies.