7.14.3. 管理客户机内存

如果要调整客户机内存设置以适应特定用例,可通过编辑客户机的 YAML 配置文件来实现。OpenShift Virtualization 可用于配置客户机内存过量使用,以及禁用客户机内存开销核算。

警告

以下流程会增加虚拟机进程因内存压力而被终止的机率。只有当您了解风险时方可继续。

7.14.3.1. 配置客户机内存过量使用

如果您的虚拟工作负载需要的内存超过可用内存,您可利用内存过量使用来为您的虚拟机实例(VMI)分配全部或大部分主机内存。启用“内存过量使用”意味着您可以最大程度利用通常为主机保留的资源。

例如,如果主机具有 32 Gb RAM,则可利用内存过量功能,运行 8 个每个分配了 4GB RAM 的虚拟机(VM)。该分配方案假设所有虚拟机不会同时使用分配给它们的所有内存。

重要

内存过量使用增加虚拟机进程因内存压力(OOM 终止)被终止的可能性。

虚拟机被 OOM 终止的可能性取决于您的具体配置、节点内存、可用 swap 空间、虚拟机内存消耗、使用内核相同的页面合并(KSM)以及其它因素。

流程

  1. 要明确告知虚拟机实例它的可用内存超过集群请求内存,请编辑虚拟机配置文件,并将 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 的驱除规则也适用于虚拟机实例。

  2. 创建虚拟机:

    $ oc create -f <file_name>.yaml