How does Parallels' CPU and ram usage work? When to shutdown virtual machine?

Solution 1:

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!