我有一个 VMWare ESXi 集群,我正在尝试了解 ESXi 上的内存消耗情况。我的物理服务器有 48GB 内存。主机正在运行一个虚拟机,该虚拟机已分配 12GB RAM,没有预留 -
因此现在由于这个原因,我的 ESXi 主机消耗的内存约为 14GB - 12GB 用于 VM(我假设)+ 2GB 正在运行的进程等。
如果我用完了已消耗的内存,ESXi 是否会开始出现故障,还是只有在用完活动内存时才会出现故障?从技术上讲,我希望过度分配,这样如果我必须将一个节点从循环中移出进行维护,我可以放置 4 个具有 12GB 分配的 VM - 即使这些 VM 实际上并没有消耗所有内存,而且只消耗了很短的时间。所有 VM 都运行 Linux/CentOS 或 Ubuntu。
我希望这是有道理的!
答案1
你可以安全地过度承诺而不必担心出现错误:在一定程度上
看:https://labs.vmware.com/vmtj/memory-overcommitment-in-the-esx-server
VMware 提供多种内存减少选项,在发生资源争用时将采用这些方法。
内存共享、压缩、膨胀和交换用于尝试保持虚拟机处于活动状态。
答案2
如果我用完了消耗的内存,ESXi 是否会开始出现故障,还是只有在用完活动内存时才会出现故障?
不是故障,它会交换到磁盘,并且您的性能会下降,但不会因此而出现故障。
也就是说,内存现在很便宜,请始终尝试在主机中留出足够的内存,以便它们不必交换 - 或者在必须的情况下使用 NVMe(或常规 SSD)进行交换。