Virtual machine memory usually can be adjusted in a settings window provided by the software controlling the virtual machine. This is usually a fairly straightforward process but must normally be completed when the virtual machine is powered down. There are upper and lower bounds with regard to much memory can be allocated to a virtual machine. These limits are based on how much random access memory (RAM) the physical computer has available and how much memory is required for the tasks to be run in the virtual machine.
Virtual machines are controlled by a host program known as a hypervisor, which is a program that runs on the physical computer. When a virtual machine is activated, it introduces another operating system that is running on the computer. The physical computer and the virtual machine each need to have enough memory to run properly, so it is imperative that the virtual machine memory be set correctly. The amount of memory needed is dependent on the operating system, the applications to be run, and any documents that are to be opened or edited. Appropriately adjusting the virtual machine memory will ensure that both systems have adequate RAM.
Hypervisors typically provide controls that allow the user to determine the settings for a particular virtual machine, which can include the number of processors, the type of processing for on-screen display, sharing of resources such as networks and universal serial bus (USB) ports, and virtual machine memory. The hypervisor may include settings to divide memory equally between the host computer and virtual machine, and sometimes may even recommend a memory setting for optimum functionality. Most often, the user is able — and often will choose — to manually specify the amount of virtual machine memory.
Similarly, virtual machines that are run as servers can have their RAM adjusted in much the same way as a virtual machine running on a desktop or laptop computer. These virtual machines also are run via a hypervisor, so the memory-adjusting process is nearly identical when running servers. The main difference is found in the often-greater requirements of server-side computing and setting virtual machine memory accordingly.