Optimized VirtualBox Settings for Windows 7/8.1/10 Guests

VirtualBox is an excellent open source/freeware tool for running virtual machines on your laptop or workstation. It’s a cross-platform hypervisor that supports Windows, Mac OS X, and Linux hosts, delivering the same experience across operating systems – unlike platform-specific virtualization tools such as Parallels for Mac or Microsoft Hyper-V. VirtualBox can be best compared with VMware Workstation, a commercially licensed tool with advanced functionality such as Snapshots and Checkpoints for VMs. On the other hand, VirtualBox is completely free for non-commercial users. The core of VirtualBox is open source, but the Oracle VirtualBox Extensions are free only for home and academic users.

Before Optimization (System > Acceleration > Paravirtualization Interface: Default):

Windows 10 Guest with default paravirtualization

After Optimization (System > Acceleration > Paravirtualization Interface: Hyper-V):

Windows 10 Guest with Hyper-V paravirtualization

If your Windows virtual machine in VirtualBox is always using up to 100% of its CPU, this article can help you optimize the settings so your experience is much smoother while working inside the VM.  

VirtualBox screenshot

One of the most common uses of VirtualBox is running Windows 7/8.1/10 as a guest operating system on a Mac OS X host. Although MacBooks and Mac desktops are the tools of choice for digital professionals such as software developers and marketing specialists, they occasionally Windows applications such as Internet Explorer or MS Edge to test their work. Some common utilities, such as PuTTY or WinSCP are also only available for Windows.

Having a MacBook Pro with 16GB or more of RAM is ideal for running virtual machines, especially memory-hungry Windows guests, but it’s possible to have a smooth experience even with a lower powered MacBook Air. While adequate, the default settings of VirtualBox are not particularly good for running a Windows guest – they are more optimized for Linux guests which can also be virtualized using VirtualBox.

Windows 7, 8.1 vs Windows 10 as a VirtualBox Virtual Machine

If you are deciding between running Windows 7, 8.1, versus Windows 10 on your VirtualBox virtual machine, I recommend Windows 10 hands-down. Microsoft’s latest and greatest operating system has been optimized to be lighter on memory usage, and actually installs with less disk space than its predecessor. On a 32GB C: Drive, Windows 10 has 14-18GB of usable space, whereas Windows 7 has less than 8GB of usable space when installed in a VirtualBox virtual machine of the same size.

32-bit Windows vs 64-bit Windows

Although the 32-bit version of Windows (and the applications on it) use less RAM, we recommend installing the 64-bit version because many modern Windows applications no longer support the 32-bit version of the Win32 API.

Pre-Allocated Virtual Disk vs. Dynamic Sizing

During the virtual machine creation process, you have two options for creating a virtual disk to boot your guest machine from: Pre-Allocated or Dynamically Sized. The default is dynamically sized, which means the .vmdk file on your host machine representing the “hard drive” of the host OS will expand as you add files to it, up to the capacity limit you specify. If performance (instead of space on the host) is the primary concern, it’s better to change the disk to Pre-Allocated, meaning a virtual disk of your preferred size will be provisioned immediately.

Install Oracle VirtualBox Extensions

Once you have followed the normal procedure to install Windows as a guest in VirtualBox, be sure to install the Oracle VirtualBox Extensions in the guest operating system. The extensions allow the guest operating system to make use of VirtualBox’s features, especially 2D and 3D acceleration for improved graphics performance. Even though the virtual machine will still be less performant compared to the host machine, especially for intensive tasks such as gaming or video editing, installing the extensions will make playing a YouTube HD video at a reasonable frame rate possible.

To have access to the VirtualBox extensions, you must first download and install them the latest version here under the header “VirtualBox X.X.X Oracle VM VirtualBox Extension Pack.”

The extension installer is mounted as a virtual CD in the virtual machine. Once you’ve booted the VM, select the “Devices” drop-down in the taskbar or menu bar, and click “Insert Guest Additions CD Image.”

Normally on a Windows guest, AutoPlay will automatically launch a dialog box where you can begin the installer, but if not, open “This PC” and double click on the CD/DVD Drive (usually D: or E:). During the step of the install where asked if you’d like to install “WDDM Direct3D Driver”, ensure that option is checked so you can enable Aero 3D animations in Windows 7/8.1/10 if you wish.

Optimal Configuration of Windows Guest in VirtualBox

The screenshots below outline the best settings for a Windows guest in VirtualBox. Generally on a laptop, it isn’t ideal to run more than one, or at most two virtual machine guests at a time due to RAM and CPU constraints. In this example, we assume a host system with 8GB RAM and an Intel i5-5250U processor at 1.60GHz (early 2015 MacBook Air).

The most important settings which are often missed are the 2D/3D acceleration settings, Paravirtualization Interface, and Nested Paging. Enabling the features allows VirtualBox to make use of the hardware accelerated virtualization features present on modern CPUs and operating systems, greatly improving performance.

Base Memory: 50% of physical RAM on host

Processor(s): Half of the available CPU cores on host

Paravirtualization Interface: Hyper-V

Hardware Virtualization – Enable Nested Paging

Video Memory: 256MB

Acceleration:

Enable 3D Acceleration – Yes

Enable 2D Video Acceleration – Yes

Adapter Type: Intel PRO/100 MT Desktop