当 RAM 使用量增加时,Proxmox 会终止虚拟机

当 RAM 使用量增加时,Proxmox 会终止虚拟机

我不知道这个 stackexchange 网站是否最适合我的问题,如果不适合,请标记此问题以便版主将问题移到其他地方。

背景与问题

我在物理机(家庭服务器)上安装了 Proxmox,在安装过程中选择了 ZFS 镜像,并创建了一个占用几乎所有资源的大型 Ubuntu 服务器 VM。

每当我在虚拟机中进行大量磁盘 I/O(写入或读取大量数据)时,RAM 使用量就会增加,达到 100% 后,虚拟机就会崩溃。读取 的输出时htop,RAM 的橙色部分会增长,我理解这是内核使用的缓冲区/缓存,应该是可以恢复的。

设置

我当前的设置如下:

  • 24GB 内存
  • 2 个 2TB 硬盘
  • Proxmox 安装在两个驱动器上,安装过程中选择了 ZFS 镜像。
  • Proxmox 虚拟机上的 Ubuntu 20.04,占用 1.5TB 空间,RAM 限制为 20GB。它使用 LVM 和 ext4、VirtIO SCSI 控制器以及 Proxmox 的大部分默认值。

Proxmox VM 的硬盘规格

研究

我在我最喜欢的搜索引擎上确实没有找到类似的东西,但也许我只是没有使用正确的关键词

答案1

我的问题可能是由于多种因素共同造成的,导致主机内存不足,并最终导致虚拟机被 OOM 终止以检索内存。

起作用的因素:

  • 主机有 24GB 的物理 RAM,但出于某种原因,它只报告约 22GB。我还没有进一步调查。
  • 为单个虚拟机分配了 20GB RAM,只为主机和 ZFS 留下了约 2GB。
  • 虚拟机内部的 RAM 使用率和磁盘 I/O 很高。
  • VM 内部的磁盘 I/O 导致 ZFS ARC 缓存无限制增长。

最终,主机终止虚拟机进程以检索 RAM 并防止中断。

我将主机上 ZFS 的 ARC 缓存限制为 4GB,并将分配给虚拟机的 RAM 减少到 12GB,以便让主机能够喘口气。

限制 ZFS ARC 缓存(在主机上):

$ cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_min=2147483648
options zfs zfs_arc_max=4294967296

考虑新的选择(在主机上):

# update-initramfs -u

感谢@MichaelHampton 让我得出这个结论。

相关内容