Why do I get better performance on VMWare when I enable all cpus along with adding cpulimit?

2

1

I'm curious but at the same time also would like to share my findings of the increased gaming performance in VMWare by enabling all virtual cpus and limiting the VMWare process with cpulimit (installed by 'brew install cpulimit').

This allows us to push the limits of the vm closer to the macs limits without everything just getting all glitchy from the operating systems fighting for resources. Normally I'll keep it at 85% and turn everything else off with 'kill -STOP pidsOfNotNeededProcess' and am left better results than I have ever gotten with other suggested methods.

I have a 2012 mac mini with a dual core i5 with hyper threading. VMWare recommends that I leave it 2 cores (my options are 1, 2, and 4 which creates the resource battle) for optimum performance. But if I set it to 4 and run 'cpulimit -p pidOfVMWare -l 200' (200% of the 400% detected from the processor) I find that I get much better performance.

My question is why does this happen?

codykochmann

Posted 2014-06-28T14:59:30.750

Reputation: 200

Answers

0

From reading up on cpulimit, it looks like it's designed to handle CPU utilization in a way that may be more effective than VMware can on its own:

It does not act on the nice value or other scheduling priority stuff, but on the real cpu usage. Also, it is able to adapt itself to the overall system load, dynamically and quickly.

(From this page)

I don't have a great explanation from the other end, but I do see plenty of examples where fusion doesn't do well at limiting CPU utilization on its own. Whatever cpulimit does, maybe VMware should incorporate it.

mbb

Posted 2014-06-28T14:59:30.750

Reputation: 2 206