XenServer

内存使用率

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

控制域内存

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

注意:

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

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

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

在以下情况下,您可能需要增加分配给 XenServer 主机的控制域的内存量:

  • 您在主机上运行的 VM 较多
  • 您正在使用 PVS 加速器
  • 您正在使用读取缓存

重要:

如果您使用的是 GFS2 SR,并且其中任何一种情况也适用于您的环境,则必须增加控制域内存量。控制域内存不足会导致网络不稳定,这可能会导致包含 GFS2 SR 的群集池出现问题。

分配给控制域的内存量取决于您的环境和 VM 的要求。

可以监视以下衡量指标,以判断控制域内存量是否适合您的环境,以及您所做的任何更改会产生什么影响:

  • Swap activity(交换活动):如果控制域正在交换,请增加控制域内存。
  • Tapdisk mode(tapdisk 模式):可以在主机的 XenCenter 性能选项卡中监视 tapdisk 是否处于内存不足模式。选择 Actions(操作)> New Graph(新建图表),然后选择 Tapdisks in low memory mode(内存不足模式下的 tapdisk)图表。如果 tapdisk 处于内存不足模式,请增加控制域内存。
  • Pagecache pressure(Pagecache 压力):使用 top 命令监视 buff/cache 衡量指标。如果此数字太小,您可能需要增加控制域内存。

使用 XenCenter 更改 dom0 内存

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

注意:

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

使用命令行更改 dom0 内存

注意:

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

  1. 在 XenServer 主机上,打开本地 shell 并以 root 用户身份登录。

  2. 键入以下命令:

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

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

  3. 使用 XenCenter 或在 XenServer 控制台上使用 reboot 命令重新启动 XenServer 主机。

    当该主机重新启动时,在 XenServer 控制台上运行 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
<!--NeedCopy-->
内存使用率