Up to this point, we have seen the creation and execution of Vagrant environments largely as it is. Every environment started has been controlled either by the default settings or settings that have been provided in packaged boxes. This is sometimes okay, but it is often desirable to use the Vagrantfile to control settings on the virtual machine in order to allow the virtual machine to run as efficiently on the host as possible. The primary example is, of course, changing the settings of the virtual machine to use more (or less) system memory (RAM) and virtual processors.
Modifying the runtime settings of a virtual machine is dependent on the features of the hypervisor. Changing the runtime for VirtualBox will be slightly different for VMware Desktop and other hypervisors. Vagrant provides a few shortcuts to common items (RAM, CPU), but modifying these settings require the use of provider-specific blocks in the Vagrantfile.