如何在ESXi服务器中分配内存?


17

我们有一台具有48 GB RAM的ESXi 4.1服务器。

对于每个VM,我们分配4GB的内存。由于服务器将具有13个虚拟机,因此我的经理认为这是错误的。

我将向他们解释ESXi实际上将管理内存本身,但是他们问我为ESXi服务器本身分配了多少内存。

我没有分配任何内存(我什至没有听说过为ESXi服务器本身分配内存的选项)。

如何为ESXi服务器分配内存?如何在虚拟机之间过度分配/分配RAM而不出现问题?

Answers:


26

这里不仅有ESXi,还有很多其他问题,

  1. 每个虚拟机将消耗高达其记录4GBs +“开销” 在这里。这取决于vCPU +分配的内存。每个VM至少要使用 4261.98 MB(4096 + 165.98)
  2. ESXi自身的内存开销,这取决于硬件。最简单的选项是查看vSphere Client 中的系统内存使用情况。从内存中,我记得它大约在1.3GB大关,但是如上所述,这非常依赖于硬件。

内存分配和过量使用说明

请注意,系统管理程序不会预先分配所有内存,而是取决于VM的使用情况。但是,值得理解的是,如果VM尝试分配和使用分配给它们的所有内存,将会发生什么情况。

您的VM +主机将尝试使用的最大数量大约为55 GB,但 里程数可能会有所不同

  • ESXi使用的1.3 GB
  • VM使用4261.98 MB * 13

还有一个方面要考虑,那就是内存阈值。默认情况下,VMware的目标是拥有6%的可用空间(高内存阈值)。因此需要将55 GB的已用内存减少到〜45GB

这意味着,如果VM使用已分配的内存,则主机将需要从某个地方回收大约10,500 MB的内存。ESX要做三件事,以发现额外的10.5 GB。

内存回收方法

  1. 透明页面共享
  2. 内存膨胀
  3. 虚拟机监控程序交换

您应该阅读并了解了解VMware®ESX™Server中的内存资源管理

取决于大量因素,这三者的组合将/可能在过度承诺的主机上发生。您需要测试环境并监视这些指标,以了解过量提交的影响。

一些值得了解的粗略规则(在以上文章和其他来源中都有)。

  1. 使用2/4 MB页面的VM不会发生透明页面共享。当您为Windows VM分配了4096 MB时,它们将默认使用2/4 MB页面(取决于PAE)。只有在内存不足的情况下,VMware才会将大页面分解为4 KB的页面,这些页面可以共享。TPS依靠使用空闲CPU周期并以一定速率扫描内存页面。它返回内存的速度相对较慢(考虑一个小时而不是几分钟)。因此,引导风暴将意味着TPS将无济于事。在这三个方面,这对性能的影响最小。文档中的更多内容

在硬件辅助的内存虚拟化(例如,Intel EPT硬件辅助和AMD RVI硬件辅助[6])系统中,ESX将自动备份具有大型主机物理页面(2MB连续内存区域,而不是常规页面的4KB)的来宾物理页面。由于更少的TLB未命中率,因此性能更好。在这样的系统中,ESX将不会共享那些大页面,因为:1)发现两个具有相同内容的大页面的可能性很低,并且2)对2MB页面进行逐位比较的开销比4KB的页面。但是,ESX仍会为每个大页面中的4KB页面生成哈希。由于ESX不会交换大页面,因此在主机交换期间,大页面将被分解成小页面,以便这些预先生成的哈希值可以在交换小页面之前用于共享小页面。简而言之,在主机内存被过量使用之前,我们可能不会观察到硬件辅助内存虚拟化系统的任何页面共享。

  1. 接下来会出现热气球(阈值是可配置的,默认情况下这是主机的可用内存少于6%(在高和软件之间)的时间)。确保安装驱动程序,并通常注意Java和托管应用程序。操作系统对垃圾回收器下一步将无法做什么一无所知,最终将导致被交换到磁盘上的页面被点击。对于专门运行Java应用程序的服务器来说,完全禁用交换以确保不会发生交换是很常见的做法。 看看vSphere内存管理(SPECjbb)的第17页

  2. 管理程序交换,这三种方法是唯一可确保 “内存”在设定时间内可供管理程序使用的方法。如果1和2没有为其提供足够的内存以使其低于阈值(默认为2%可用内存),将使用此选项。仔细阅读性能指标(自己做)时,您会意识到这是三个指标中表现最差的。目的是避免它不惜一切代价作为对性能的影响将是非常noticable上几乎所有的应用程序两位数的百分比

  3. 还有一个状态需要注意的(默认1%)。从手册中可以大大降低您的表现,

在极少数情况下,主机可用内存降到低阈值以下,系统管理程序将继续通过交换和内存压缩回收内存,并另外阻止消耗比目标内存分配更多的内存的所有虚拟机的执行。

摘要

压力的关键在于无法从白皮书中预测您的环境将如何运行。

  1. TPS可以给您多少?(取决于您的VM与它们的OS,Service Pack和运行的应用程序有多相似)
  2. 您的VM多快分配一次内存?它们执行得越快,在影响较小的内存回收方案成功将您保持在当前阈值之前,您越有可能跳到下一个阈值。
  3. 根据应用程序的不同,每种内存回收方案都会产生广泛的影响。

测试您的平均场景,您的百分比场景是95%,最后是最大数量,以了解您的环境将如何运行。


编辑1

值得添加的是,使用vSphere 4(或4.1无法调用),现在可以将虚拟机监控程序交换放置在本地磁盘上,但仍可以虚拟化VM。如果您使用共享存储,则强烈建议您将虚拟机管理程序交换文件默认移动到本地磁盘上。这样可以确保当一台主机承受严重的内存压力时,它不会最终影响同一共享存储上的所有其他vSphere主机/ VM。

编辑2

根据评论,得出以下事实:ESX不会以粗体形式预先分配内存...

编辑3

解释了有关内存阈值的更多信息。


1
VMware不会分配未使用的内存。过量使用的真正原因是因为VM仅在要求时才分配最大内存量。分配所有内容后,对额外内存的请求就来自交换。
适配器

1
在添加该评论之前,您是否看到了这一点?“请注意,管理程序将不分配所有的内存前期的,它是依赖于虚拟机的使用率不过,值得理解会发生什么事情应该在虚拟机尝试分配和使用所有分配给他们的记忆。”
中号阿菲菲

既然这显然是OP的主要问题之一(vmware怎么会构想我没有的内存?),所以它应该在列表上显得很重要,而不是事后才想到的。您通过解释回收来向后解释内存使用情况。为什么呢
适配器

情况如何倒退?回答说,这就是您分配的内存量。它不会预先分配它。如果确实如此(根据VM内存使用情况),则会产生影响。真的不能告诉别人不要担心。如果您过量使用内存,则应该了解其影响。
M Afifi 2012年

4

VMware(和其他虚拟化技术)根据各种算法在VM之间共享资源(内存,处理器时间,各种I / O)。

过度使用资源是有可能的,因为并非所有VM都会一直使用它们所需的所有处理,内存或I / O。 VMware的资源管理指南可能是阅读ESXi中可能的功能的最佳位置。

您还可以通过为不同资源的不同VM加权来管理算法的效果-例如,您可以为应用服务器VM分配比文件服务器VM更高的处理器加权。但是,开箱即用的设置将很好地满足大多数要求。在某些情况下,在这里进行一些配置足以使那些不太了解它的管理人员安心,但是当然要小心并阅读适用于您的VMware版本的文档并了解您的工作。如果您的经理不需要进一步处理,则只需使用默认值即可。

请注意,过度使用不一定总是一个好主意,特别是如果您已在单个服务器上虚拟化。您应该监视ESXi资产中对资源的使用,如果您经常消耗所有一种或多种资源,则在必要时添加其他主机/资源。


2

让您的VMWare ESXi安装处理它。由于VMWare系统使用内存膨胀,压缩和重复数据删除技术,因此您可能过量使用RAM资源。

如果虚拟机使用的是类似的操作系统,则可以节省一些费用。确保启用来宾VM内部的VMWare工具以充分利用这些功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.