7.14.4. 管理客户机内存
如果要调整客户机内存设置以适应特定用例,可通过编辑客户机的 YAML 配置文件来实现。OpenShift Virtualization 可用于配置客户机内存过量使用,以及禁用客户机内存开销核算。
以下流程会增加虚拟机进程因内存压力而被终止的机率。只有当您了解风险时方可继续。
7.14.4.1. 配置客户机内存过量使用
如果您的虚拟工作负载需要的内存超过可用内存,您可利用内存过量使用来为您的虚拟机实例(VMI)分配全部或大部分主机内存。启用“内存过量使用”意味着您可以最大程度利用通常为主机保留的资源。
例如,如果主机具有 32 Gb RAM,则可利用内存过量功能,运行 8 个每个分配了 4GB RAM 的虚拟机(VM)。该分配方案假设所有虚拟机不会同时使用分配给它们的所有内存。
内存过量使用增加虚拟机进程因内存压力(OOM 终止)被终止的可能性。
虚拟机被 OOM 终止的可能性取决于您的具体配置、节点内存、可用 swap 空间、虚拟机内存消耗、使用内核相同的页面合并(KSM)以及其它因素。
流程
要明确告知虚拟机实例它的可用内存超过集群请求内存,请编辑虚拟机配置文件,并将
spec.domain.memory.guest
设置为超过spec.domain.resources.requests.memory
的值。这一过程即为“内存过量使用”。在本例中,对集群的请求内存为
1024M
,但虚拟机实例被告知它有2048M
可用。只要相关的节点上有足够的可用内存,虚拟机实例最多可消耗 2048M 内存。kind: VirtualMachine spec: template: domain: resources: requests: memory: 1024M memory: guest: 2048M
注意如果节点面临内存压力,则适用于 pod 的驱除规则也适用于虚拟机实例。
创建虚拟机:
$ oc create -f <file_name>.yaml