Windows – How does Parallels’ CPU and ram usage work? When to shutdown virtual machine

cpuparallels-desktopvirtualizationwindows

I run Windows 7 using Parallels in host operating system OSX.
I have it configured to use 2GM ram and 2 cores on a Retina MacBook Pro with 8GB ram.

I'm curious under what conditions I will experience a performance hit either in terms of CPU usage. Ultimately, I'm interested in whether it is best when Windows 7 in parallels is not in active use, to:

(a) suspend Windows 7 in Parallels
(b) shut down Windows 7 in Parallels
(c) Quit parallels completely

Initial observations

Using the activity monitor, I noticed the following:

  • When idle the Windows 7 virtual machine prl_vm_app was using around 2GB of ram and 2 to 2.5% of CPU
  • When Windows 7 was suspended or turned off the process disappeared completely

In addition, when Parallels was running with a virtual machine runnning or not, it used around 200 MB and about 0.5% of cpu.

So my initial conclusion is that if you are short on ram, then suspending or shutting down the virtual OS is a good idea. There is also some small background CPU usage if you don't shut it down.
However, I'm worried that I'm missing something.

Questions

  • Does running a virtual machine running in Parallels on OSX use additional CPU or other resources over and beyond the CPU usage indicated in Activity Monitor? For example does it reserve cores?
  • Are there any good rules of thumb about whether or when to suspend the virtual machine?

Best Answer

Alright, let's see what we can do here!


1) Suspending vs. Shutting Down in Parallels

a) How it affects the host OS

Both options do not affect the host operating system - in your case, OS X - from a resource usage standpoint. Rather, they only affect how the guest OS will boot next time - (i.e. waking up from sleep vs. a cold boot).

When suspending, it works just like a physical Windows machine: it saves the current state of the operating system for later use. Unlike a physical machine, however, it uses no extra battery power, RAM, or CPU cycles to do so; Parallels unloads it from RAM and stores it purely on the hard disk (think of it closer to a Windows laptop "hibernating" than "sleeping").

b) How it affects the guest OS

On the other hand, both of these options have a more prominent effect on the guest OS. Aside from the standard reasons one might want to shut down a computer versus letting it sleep (updates, troubleshooting, etc.), there's one other reason to shut down the virtual machine: Parallels locks down quite a few of the guest OS settings (boot order, coherence mode, shared apps, etc.) and prevents them from being changed if the virtual machine state is anything other than shut down.

c) Which should be used?

In my personal experience with Parallels, I have found no issues with using sleep consistently between sessions. The only time I shut down virtual machines is if I want to change some of the Parallels settings for that particular guest OS or if I encounter an odd bug that can pop up in Windows from time to time.

2) Resource Usage

a) RAM

A set amount of RAM is reserved specifically for the guest OS - which you indicated to be 2GB; Parallels will not use significantly more or less.

b) CPU

i) Usage

CPU, like the guest OS hard disk, is used on an "as-needed" basis and is accurately reported in the Activity Monitor.

ii) Reservation or parking

Parallels will not reserve (or "park") cores; the option you see in the guest OS options (Hardware > CPU & Memory > CPUs) merely limits the number cores that the guest OS will have access to rather than purely reserving them exclusively. This way the guest OS can extensively use these assigned cores, and if the guest OS begins to have a large work load, the host OS can use the remaining cores to continue its business without having processes choked from the guest OS.


Hopefully that helps you out! If you have any questions or need clarification on any of that, comment and let me know!