内存使用率

Citrix Hypervisor 服务器的内存占用由两部分构成。首先,是 Xen 虚拟机管理程序本身占用的内存。其次,是主机的控制域占用的内存。控制域也称为“Domain0”或“dom0”,是一个运行 Citrix Hypervisor 管理 Toolstack (XAPI) 的享有特权的安全 Linux VM。除了提供 Citrix Hypervisor 管理功能之外,控制域还运行驱动程序堆栈,提供对物理设备的用户创建 VM 访问。

控制域内存

分配给控制域的内存量可以自动调整,并且基于物理主机上的物理内存量。默认情况下,Citrix Hypervisor 将 1 GiB 加上总物理内存的 5% 分配给控制域,最大达 8 GiB。

注意:

在 XenCenter 的 Citrix Hypervisor 部分中报告的内存量包括由控制域 (dom0)、Xen 虚拟机管理程序本身和崩溃内核占用的内存量。因此,在 XenCenter 中报告的内存量可能会超过这些值。对于使用更多内存的主机来说,虚拟机管理程序占用的内存量更大。

更改分配给控制域的内存量

可以使用 XenCenter 或命令行更改分配给 dom0 的内存量。如果将分配给控制域的内存量增加到超过默认分配的量,这将导致 VM 的可用内存减少。

使用 XenCenter 更改 dom0 内存

有关使用 XenCenter 更改 dom0 内存的信息,请参阅 XenCenter 文档中的更改控制域内存

注意:

不能使用 XenCenter 将 dom0 内存降低到低于最初在 Citrix Hypervisor 安装过程中设置的值。必须使用命令行进行此更改。

使用命令行更改 dom0 内存

注意:

在内存较小(小于 16 GiB)的主机上,您可能希望将分配给控制域的内存降低到小于在安装过程中设置的默认值。可以使用命令行进行此更改。但是,我们建议您不要将 dom0 内存减小到 1 GiB 以下,并建议您在支持团队的指导下执行此操作。

  1. 在 Citrix Hypervisor 服务器上,打开本地 shell,以 root 用户身份登录。

  2. 键入以下命令:

    /opt/xensource/libexec/xen-cmdline --set-xen dom0_mem=<nn>M,max:<nn>M
    

    其中 <nn> 代表要分配给 dom0 的内存量(以 MiB 为单位)。

  3. 在 xsconsole 上使用 XenCenter 或 reboot 命令重新启动 Citrix Hypervisor 服务器。

    当该主机重新启动时,在 xsconsole 上,运行 free 命令以验证新的内存设置。

VM 的可用内存量有多少?

要了解可分配给 VM 的主机内存量,请运行 memory-free 以获取主机的可用内存值。然后键入命令 vm-compute-maximum-memory 以获取可分配给 VM 的实际可用内存量。例如:

xe host-list uuid=host_uuid params=memory-free
xe vm-compute-maximum-memory vm=vm_name total=host_memory_free_value