在小型服务器上的Xen内存pipe理

目前,我正在用于各种项目的服务器上运行VMware vSphere 5。 主要是我用它来pipe理和运行一些游戏服务器来磨练自己的技能。

最近我正在考虑迁移到Xen(xen.org)或可能Citrix XenServer(免费版本)。

当我查看XenServer中未包含的各种function时,我注意到不包括的一个function是内存过量使用。 据我所知,这是在VMware vSphere上。 问题是因为我在一个小的环境中使用VMware(1台服务器)我甚至不确定我是否正在使用内存过量使用。

所以我想知道它是什么(内存过量使用),我怎么知道我是否使用它?

“承诺内存”意味着允许运行的虚拟机具有比物理主机实际拥有更多的分配RAM(总数)。

所以,在你想要同时运行的虚拟机中加起来的内存,然后为虚拟机pipe理程序留出一些空间,并且如果总数小于物理内存,那么你还没有做出承诺。

在VMware ESX和ESXi中,如果您安装了VMware Tools,则会启用内存pipe理驱动程序又名气球驱动程序。

另一种允许内存过度使用的机制是在ESX / ESXi级别交换/分页,但是这是非常缓慢的,你应该避免它。

除此之外,在ESXi 5中,还有另外两种机制可以使内存过度使用。 一个是内存去重复,其中相同的内存段只会被分配一次。 有一个vmkernel线程将在空闲时间扫描内存来查找这样的段。

另一种机制是内存压缩。 而不是交换,服务器将通过压缩一些内存来腾出空间。

要知道您是否正在使用,请添加为所有VM(包括ESXi控制台)分配的内存,为vmkernel添加约100MB(这不正确)。 如果这比物理内存更重要,那么你是过度提交内存。

您还可以检查ESXi服务器的性能计数器中每个虚拟机使用的气球大小和交换。

Xen确实有dynamic的内存pipe理技术,即膨胀和自我膨胀。

它不支持内存过量使用,因为它不允许虚拟机实际使用比您的系统中物理可用的更多的内存。

换句话说:用Xen你必须在虚拟机之间物理分配你的内存,但是你仍然可以在运行时dynamic地调整这些分区而不用重新启动虚拟机。

另一方面,VMware vSphere虚拟机pipe理程序可以让虚拟机比实际拥有更多内存,如果虚拟机无法获得足够的实际内存(通过膨胀其他虚拟机等),则将其交换到磁盘。

PS,作为一个侧面说明,Xen在Trascendent Memory中也有完全不同的技术:支持它的VM(Linux> = 3.0 AFAIK)可以用于各种目的(主要是作为页面caching,减lessIOPS到实际的磁盘)。