我们目前正在我的环境中进行讨论。假设如下
“专为 Linux 中的物理基础设施内存管理而设计的工具(如 top、free、vmstat、/proc/meminfo)无法在 ESXi 虚拟机管理程序中的虚拟机上运行,因为它们依赖于操作系统在裸机系统中直接监控物理 RAM 的能力。在虚拟基础设施中,客户操作系统无法看到物理硬件,只能看到由 (ESXi) 虚拟机管理程序模拟的虚拟硬件。由于操作系统无法直接访问大多数主机服务器的物理硬件,因此传统的性能监控工具无法在虚拟基础设施中正常运行。”
在 VM 客户机 (SLES 11) 中,我们看到 RAM 利用率约为 93%。然而,在 vSphere/vCops 中显示 5072309 kb 主动写入,其中分配了 8388608 (8GB) KB 的 RAM。利用率大约为 60.46%。
问题是,上述假设是否正确,如果正确:
如果虚拟机中客户机内部的 top 不准确,并且达到了 100% 的 RAM 利用率,那么虚拟机客户机是否会进行交换,如果是这样,我推测位于 SAN 上的 vswp 会导致虚拟机客户机速度变慢?
答案1
视情况而定。您应该依赖虚拟机中的工具,如 top、vmstat 等。它们是准确的,前提是您的物理资源没有过度使用,并且您已经安装了 VMware 工具。在 vSphere 级别,您仍然可以使用内存膨胀、TPS、压缩和交换作为后备。内存管理真的没有那么糟糕。
还了解 vSphere/vCenter 指标和 vCops 指标完全不同(vCops 被 VMware 收购,并使用自己的算法来衡量资源利用率)。
测量虚拟机级别的利用率。使用 vCops 或 vCenter 规划集群级别的资源。
不要过度使用你的 RAM,因为将会扭曲指标并对性能产生明显影响。
应用程序的类型也很重要。如果应用程序是基于 Java 的,则可以使用其他一些方法(部分或全部预订) 是帮助它们在 vSphere 环境中有效运行所必需的。