1 | <?xml version='1.0' encoding='UTF-8'?>
|
---|
2 | <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
|
---|
3 | <topic xml:lang="en-us" id="guestadd-balloon">
|
---|
4 | <title>Memory Ballooning</title>
|
---|
5 |
|
---|
6 | <body>
|
---|
7 | <p>
|
---|
8 | The Guest Additions can change the amount of host memory that a
|
---|
9 | VM uses, while the machine is running. Because of how this is
|
---|
10 | implemented, this feature is called <i>memory
|
---|
11 | ballooning</i>.
|
---|
12 | </p>
|
---|
13 | <note>
|
---|
14 | <ul>
|
---|
15 | <li>
|
---|
16 | <p>
|
---|
17 | <ph conkeyref="vbox-conkeyref-phrases/product-name"/> supports memory ballooning only on 64-bit
|
---|
18 | hosts. It is not supported on macOS hosts.
|
---|
19 | </p>
|
---|
20 | </li>
|
---|
21 | <li>
|
---|
22 | <p>
|
---|
23 | Memory ballooning does not work well with large pages
|
---|
24 | enabled. To turn off large pages support for a VM, run
|
---|
25 | <userinput>VBoxManage modifyvm <varname>vmname</varname> --large-pages
|
---|
26 | off</userinput>
|
---|
27 | </p>
|
---|
28 | </li>
|
---|
29 | </ul>
|
---|
30 | </note>
|
---|
31 | <p>
|
---|
32 | Normally, to change the amount of memory allocated to a virtual
|
---|
33 | machine, you have to shut down the virtual machine entirely and
|
---|
34 | modify its settings. With memory ballooning, memory that was
|
---|
35 | allocated for a virtual machine can be given to another virtual
|
---|
36 | machine without having to shut the machine down.
|
---|
37 | </p>
|
---|
38 | <p>
|
---|
39 | When memory ballooning is requested, the <ph conkeyref="vbox-conkeyref-phrases/product-name"/> Guest
|
---|
40 | Additions, which run inside the guest, allocate physical memory
|
---|
41 | from the guest operating system on the kernel level and lock
|
---|
42 | this memory down in the guest. This ensures that the guest will
|
---|
43 | not use that memory any longer. No guest applications can
|
---|
44 | allocate it, and the guest kernel will not use it either.
|
---|
45 | <ph conkeyref="vbox-conkeyref-phrases/product-name"/> can then reuse this memory and give it to another
|
---|
46 | virtual machine.
|
---|
47 | </p>
|
---|
48 | <p>
|
---|
49 | The memory made available through the ballooning mechanism is
|
---|
50 | only available for reuse by <ph conkeyref="vbox-conkeyref-phrases/product-name"/>. It is
|
---|
51 | <i>not</i> returned as free memory to the host.
|
---|
52 | Requesting balloon memory from a running guest will therefore
|
---|
53 | not increase the amount of free, unallocated memory on the host.
|
---|
54 | Effectively, memory ballooning is therefore a memory
|
---|
55 | overcommitment mechanism for multiple virtual machines while
|
---|
56 | they are running. This can be useful to temporarily start
|
---|
57 | another machine, or in more complicated environments, for
|
---|
58 | sophisticated memory management of many virtual machines that
|
---|
59 | may be running in parallel depending on how memory is used by
|
---|
60 | the guests.
|
---|
61 | </p>
|
---|
62 | <p>
|
---|
63 | At this time, memory ballooning is only supported through
|
---|
64 | <userinput>VBoxManage</userinput>. Use the following command to
|
---|
65 | increase or decrease the size of the memory balloon within a
|
---|
66 | running virtual machine that has Guest Additions installed:
|
---|
67 | </p>
|
---|
68 | <pre xml:space="preserve">VBoxManage controlvm "VM name" guestmemoryballoon n</pre>
|
---|
69 | <p>
|
---|
70 | where <varname>VM name</varname> is the name or UUID of
|
---|
71 | the virtual machine in question and <varname>n</varname>
|
---|
72 | is the amount of memory to allocate from the guest in megabytes.
|
---|
73 | See <xref href="vboxmanage-controlvm.dita"/>.
|
---|
74 | </p>
|
---|
75 | <p>
|
---|
76 | You can also set a default balloon that will automatically be
|
---|
77 | requested from the VM every time after it has started up with
|
---|
78 | the following command:
|
---|
79 | </p>
|
---|
80 | <pre xml:space="preserve">VBoxManage modifyvm "VM name" --guest-memory-balloon n</pre>
|
---|
81 | <p>
|
---|
82 | By default, no balloon memory is allocated. This is a VM
|
---|
83 | setting, like other <userinput>modifyvm</userinput> settings, and
|
---|
84 | therefore can only be set while the machine is shut down. See
|
---|
85 | <xref href="vboxmanage-modifyvm.dita"/>.
|
---|
86 | </p>
|
---|
87 | </body>
|
---|
88 |
|
---|
89 | </topic>
|
---|