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


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

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

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

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

如何为ESXi服务器分配内存?如何在没有问题的情况下在虚拟机之间过度分配/分配RAM?


18
2017-08-23 11:29






答案:


这里有很多只有ESXi的问题,

  1. 每个虚拟机最多消耗4GB +“开销”,这是记录在案的 这里。这取决于vCPU,+分配的内存。每个VM至少会使用 4261.98 MB (4096 + 165.98)
  2. ESXi自身的内存开销,这取决于硬件。最简单的选择是看看 系统 vSphere客户端中的内存使用情况。从记忆中我记得它大约是1.3GB标记,但正如所说的那样 非常 依赖于硬件。

内存分配和过度使用说明

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

VM +主机尝试使用的最大值大约是, 55 GB  milage可能会有所不同

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

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

这意味着如果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不会帮助你。从三者来看,这对性能影响最小。更多来自该文件,

在硬件辅助内存虚拟化中(例如,英特尔EPT   硬件辅助和AMD RVI硬件辅助[6])系统,ESX将   自动返回具有大型主机物理页面的访客物理页面   (常规页面为2MB连续内存区域而不是4KB)   由于较少的TLB未命中而获得更好的性能。在这样的系统中,ESX会   不共享那些大页面是因为:1)找到两个的概率   具有相同内容的大页面是低的,以及2)的开销   对2MB页面进行逐位比较比a大得多   4KB页面。但是,ESX仍会为其中的4KB页面生成哈希值   每个大页面。由于ESX在主机期间不会换出大页面   交换时,大页面将被分成小页面以便这些   预先生成的哈希值可用于在它们之前共享小页面   被换掉了。简而言之,我们可能不会观察到任何页面共享   硬件辅助内存虚拟化系统直到主机内存   过载。

  1. 热气球 接下来启动(阈值是可配置的,默认情况下,这是主机的内存不足6%(高和软件之间))。确保安装驱动程序,并注意Java和 管理 一般的应用。操作系统无法深入了解垃圾收集器接下来会做什么,最终会触及已交换到磁盘的页面。对于运行java应用程序的服务器来说,完全禁用交换以保证不会发生这种情况的做法并不罕见。 查看vSphere内存管理第17页,SPECjbb

  2. 管理程序交换,从三种方法是唯一的一种 担保 “内存”在一段时间内可供管理程序使用。如果1和2没有足够的内存留在下面,则会使用此选项  阈值(默认值为2%可用内存)。当您阅读性能指标(自己做)时,您会发现这是三者中表现最差的。旨在不惜一切代价避免它,因为几乎所有应用程序的性能影响都非常显着 两位数百分比

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

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

摘要

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

  1. TPS给你多少钱? (取决于您的VM与其操作系统,Service Pack和正在运行的应用程序的相似程度)
  2. 您的VM分配内存的速度有多快?他们做得越快,你就越有可能在影响较小的内存回收方案成功阻止你进入当前阈值之前跳到下一个阈值。
  3. 根据应用,每个内存回收方案将产生广泛的影响。

测试您的平均场景,95%百分位情景,最后是您了解环境运行方式的最大值。


编辑1

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

编辑2

根据评论,事实上ESX没有预先以粗体分配内存......

编辑3

更多地解释了内存阈值。


25
2017-08-23 12:03



VMware没有 分配 未使用的内存;过度使用工作的真正原因是因为VM只会分配最大内存量 当它要求它。一旦分配了所有内容,额外内存的请求就来自交换。 - adaptr
在添加评论之前,你有没有看到这一点? “请注意,虚拟机管理程序不会预先分配所有内存,而是依赖于虚拟机的使用情况。但是,如果虚拟机尝试分配并使用分配给它们的所有内存,那么理解将会发生什么是值得的” - M Afifi
因为这显然是OP主要关注的问题之一(vmware如何让人想起我没有的内存?),它应该在列表中出现高位,而不是事后的想法。你在解释记忆 用法 向后解释填海工程。为什么? - adaptr
怎么倒退?答案说,这是你分配了多少内存。它不会预先分配它。如果它(基于VM内存使用)确实是影响。真的不能告诉别人不要担心它。如果你过度使用内存,你应该知道影响。 - M Afifi


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

它是可能的 过量使用 资源,因为并非所有虚拟机都将使用他们一直需要的所有处理,内存或I / O. VMware的资源管理指南 可能是阅读ESXi中可能的内容的最佳位置。

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

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


4
2017-08-23 11:42





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

如果虚拟机使用类似的操作系统,那么可以节省一些成本。请务必启用来宾VM中的VMWare工具以充分利用这些功能。


2
2017-08-23 12:03