为VMware ESXi VM分配交换空间的最佳方式是什么?

我在VMware ESXi(主要是CentOS,但很less有Ubuntu)上运行几个虚拟机,似乎有两种不同的方式处理内存分配。 这里有两个例子:

(a)将4GB内存分配给虚拟机并创build2GB交换文件。

(b)将6GB的内存分配给虚拟机并且没有交换文件。

这些方法的优缺点是什么?

ESXi,过度使用和交换和膨胀远不是微不足道的。 在性能非常差的情况下,如虚拟机将内存映射IO转换为pipe理程序正在交换的RAM,很容易造成这种情况。 根据您发布的有限信息提供build议不是真的可行。

我build议你先阅读vSphere资源pipe理指南 。 特别是关于内存系统的章节应该对你很有意思。 如果您在阅读指南后有更具体的问题,请回复并再次提问。

性能方面,交换空间不是真正的物理内存的扩展。 无论您的机器是否需要交换空间,很大程度上取决于它们的满足程度。 例如,build议运行Oracle数据库的机器有一定数量的交换空间(Oracle对此有官方build议),无论安装的是多lessRAM。

ESX可以做内存提交,所以如果你为每台机器分配6GiB的RAM,并不意味着每台机器实际上消耗了6GiB的每一个位。

ESX也将自行更换内存。 ESX将为每个虚拟机创build一个交换文件,如果需要的话,会将虚拟机的内存换出到磁盘。 对于虚拟机来说,即使它们来自磁盘,它仍然看起来像内存块位于RAM中。

如果你可以腾出RAM和你的虚拟机需要它,分配6GiB给他们。 这并不意味着他们不会从虚拟机内的交换分区中受益。 默认情况下,Linux将尝试换出未使用的内存。 这是由“vm.swapiness”sysctl参数定义的。

长话短说,只是列出选项不会给你一个大小,适合所有答案如何configuration你的RAM。 告诉我们更多:目的,硬件等