The more cores I assign to a Windows 10 VM, the slower it gets


Recommended Posts

So I've been testing a Windows 10 VM and no matter what I do, the more cores I assign to it, the slower it performs and it's pretty linear.

 

I have an i5-8400 with 16GB of RAM. It has 6 cores, no hyperthreading. I'm assigning 8GB to the VM and it's install on a 1TB SSD drive.

 

I'm testing with an Excel Macro (which is actually what I need the VM for) and here are my results (all dockers are turned off and I have no other VMs):

 

Without using cpu isolation for unRAID I was getting 3:30 with 1 core and over 4:30 with 5 (always leaving core 0 unassigned to the VM). 2 cores was around 4 minutes.

 

After isolating cores 0 and 1, giving the VM 1 core gets me 3:19 and with 4 I'm at a 4:02

 

Using the <emulatorpin cpuset='0-1'/> command on the VM actually helped a little when using 4 cores, dropping the time to 3:59, but the time was exactly the same on 1 core.

 

Just for clarity, there's no variability on the macro, it always performs exactly the same functions and takes exactly the same time every time unless something else is hogging resources.

 

I wonder if anyone else is seeing the same kind of performance hit by assigning more cores. I'm aware Excel 2016 doesn't have amazing multi core performance, but it shouldn't be slower! Maybe a lot more people have this issue and haven't even noticed it as I'm not sure it would show up in gaming and it's not noticeable otherwise. However it's a pretty big performance hit. Unfortunately I've never had the chance to do a native Windows 10 install on that hardware, but for reference on my i7-7500U notebook with a 5196 passmark (the i5-8400 has 11791) I'm getting 4:30 on the same macro. So something is definitely wrong, any ideas?

Link to comment

Will do, thanks.

 

That post talked about VM startup being affected, but made no mention of performance being affected once the VM had already started. Maybe they just hadn't noticed. Like I said without actually timing the macro I wouldn't have noticed either and since I only assign 4 cores I didn't notice any difference in startup time.

 

Will do the update and post in that thread with my results.

Link to comment
37 minutes ago, eschultz said:

You would think that having more cores wouldn't actually make Excel significantly slower, but after disabling multi core calculation on another computer, the macro is actually computing faster as well. And it's not a little bit faster, but significantly so. This is true for any of the macros we run at work. So thanks to unraid I noticed this and I've kinda revolutionized the office btw. So disregard this thread, I guess I'll turn my ire to Microsoft and their very crappy multi core algorithms.

 

Thanks again.

Link to comment

also check that you have the 64-bit versions of office installed since Microsoft still installs the 32 bit versions by default...  There are some minor compatibility issues to check on first, and you have to totally uninstall and reinstall to switch it, but otherwise it is significantly faster...  It is the only thing I install now...

 

But also make sure that your XML is pairing up HyperThreaded cores correctly...  You could be having both issues...

Link to comment
45 minutes ago, Warrentheo said:

also check that you have the 64-bit versions of office installed since Microsoft still installs the 32 bit versions by default...  There are some minor compatibility issues to check on first, and you have to totally uninstall and reinstall to switch it, but otherwise it is significantly faster...  It is the only thing I install now...

 

But also make sure that your XML is pairing up HyperThreaded cores correctly...  You could be having both issues...

Thanks, I will look into the Office version. My CPU doesn't support hyperthreading so that's not a concern, it just has 6 physical cores. I will post my XML when I get home, but I don't anticipate any problems there.

Link to comment
4 hours ago, Warrentheo said:

Indeed I had the 32 bits version installed, however assigning 4 cores to the VM and switching off multi core calculation in Excel resulted in a massive speed up and the macro is now running at 2:48, so I'm confident unraid is actually running right. It's bizarre to me how inefficient Excel is at managing multiple cores, like if you suck so much at it, don't leave it enabled as default. 

 

Edit: My bad, it was actually the 64 bit version. I had the 32 bit in the other computer I was using for testing. So even in the 64 bit version allowing Excel to use multiple cores just makes calculation slower. Really mindblowing IMO.

Edited by crazygambit
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.