kind: VirtualMachine
spec:
template:
domain:
resources:
requests:
memory: 1024M
memory:
guest: 2048M
If you want to adjust guest memory settings to suit a specific use case, you can do so by editing the guest’s YAML configuration file. Container-native virtualization allows you to configure guest memory overcommitment and disable guest memory overhead accounting.
Both of these procedures carry some degree of risk. Proceed only if you are an experienced administrator.
If your virtual workload requires more memory than available, you can use memory overcommitment to allocate all or most of the host’s memory to your virtual machine instances. Enabling memory overcommitment means you can maximize resources that are normally reserved for the host.
For example, if the host has 32 GB RAM, you can use memory overcommitment to fit 8 virtual machines with 4 GB RAM each. This allocation works under the assumption that the virtual machines will not use all of their memory at the same time.
To explicitly tell the virtual machine instance that it has more memory available than
was requested from the cluster, edit the virtual machine configuration file and
set spec.domain.memory.guest
to a higher value than
spec.domain.resources.requests.memory
. This process is called memory
overcommitment.
In this example, 1024M
is requested from the cluster, but the virtual machine instance is
told that it has 2048M
available. As long as there is enough free memory
available on the node, the virtual machine instance will consume up to 2048M.
kind: VirtualMachine
spec:
template:
domain:
resources:
requests:
memory: 1024M
memory:
guest: 2048M
The same eviction rules as those for pods apply to the virtual machine instance if the node is under memory pressure. |
Create the virtual machine:
$ oc create -f <file name>.yaml
This procedure is only useful in certain use-cases and must only be attempted by advanced users. |
A small amount of memory is requested by each virtual machine instance in
addition to the amount that you request. This additional memory is used for
the infrastructure that wraps each VirtualMachineInstance
process.
Though it is not usually advisable, it is possible to increase the virtual machine instance density on the node by disabling guest memory overhead accounting.
To disable guest memory overhead accounting, edit the YAML configuration
file and set the overcommitGuestOverhead
value to true
. This parameter is
disabled by default.
kind: VirtualMachine
spec:
template:
domain:
resources:
overcommitGuestOverhead: true
requests:
memory: 1024M
If |
Create the virtual machine:
$ oc create -f <file name>.yaml