免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1804 | 回复: 1
打印 上一主题 下一主题

[虚拟化与云计算] 详解vSphere 5.x中的内存管理相关概念 [复制链接]

论坛徽章:
4
综合交流区版块每日发帖之星
日期:2015-09-07 06:20:00综合交流区版块每日发帖之星
日期:2015-09-07 06:20:00IT运维版块每日发帖之星
日期:2015-09-07 06:20:00IT运维版块每日发帖之星
日期:2015-09-07 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-10 00:50 |只看该作者 |倒序浏览


内存管理这个部分,很多VCP,甚至VCI都不太清楚,而它却直接关系到Troubleshooting和Optimize相关的工作,因此,准确理解这个内存管理机制,就显得尤其重要了;

在vSphere 5.x中,内存管理分为3大类型,分别是:

Host Memory
Consumed Memory
Overhead consumption

Guest Memory
Private memory
Shared memory
Swapped memory
Compressed memory
Ballooned memory
Unaccessed memory
Active memory
以上几种内存开销显示,有着不同的颜色,也代表着不同的内存管理、开销相关机制,如下图所示:



Resource Settings:
Reservation
Limit
Configured
Shares
Worst case allocation
Overhead reservation

当开启一台VM之后,VM的General页面会看到类似如下图所示的详细信息,其中,也会有和Memory管理相关的部分:



下面,分别介绍前面Host Memory和Guest Memory所代表的意义:

Host Memory - Consumed memory
这个选项是很多


人容易混淆VM任务管理器里的内存开销和这里显示开销之间的关系,很多人认为GUI的显示数据不准确,就是这个不一致导致的。注意,这里的Consumed memory表示在ESXi Host为VM分配 的Total Memory中实际开销,本例中,为1.536GB;


Host Memory - Overhead consumption


这个选项不太好理解,实质上,这个部分是运行VM的Memory Overhead,这个选项的开销来自于ESXi Host运行一个VMM所带来的开销,大小是浮动的,决定于VM的配置信息;


Guest Memory - Private memory


Private memory表示VM在ESXi Host上开销的实际物理内存数。在本例中,VM站住了1.50GB的物理内存,因此,Private Memory加上Overhead consumption为

1.50GB + 30MB = 1.53GB;
Guest Memory - Shared memory
Shared memory则表示多台虚拟机通过Transparent Page Sharing(TPS)共享的部分内存;

Guest Memory - Swapped memory


这个部分则表示由于内存资源不足导致的即将被Swapped out和被vmkernel回收的部分虚拟机物理内存。这个值通常为0,而且也建议为0,因为一般情况下,在它发生前,都会执行内存压缩,以便最大化节约内存开销,提升内存地址空间利用率。而一旦它不为0,那么,就悲剧了,意味着此时存在严重的内存资源不足的情况;

Guest Memory - Compressed memory
Compressed memory则是vmkernel压缩后的虚拟机物理内存部分。这个值缺省也为0,最好也为0,但是必要时,也可以不为0,作为其中一种内存回收技术,它可以帮助用户最大化节约内存资源开销,提升内存地址空间利用率。这个选项缺省被激活,要求压缩比大于等于50%,可以手动禁止掉它;

Guest Memory - Ballooned memory
这个选项是balloon driver从虚拟机操作系统回收的内存部分;

Guest Memory - Unaccessed memory
这个表示虚拟机OS里面,一部分一直没有用到的内存,通常,在Ballooned时,这部分的内存就会被优先取走;

Guest Memory - Active memory


Active memory则是虚拟机系统里面,当前处于活动状态下的内存数,注意,这个活动数于虚拟机操作系统里面的任务管理器里所显示的那个不太一样,因为在那个对于系统本身的活动内存计算会更准确。而ESXi Host取出来的Active memory有一个时间周期,因此这个数据是一个周期时间内的取值,而不是当前绝

对实时的值,比如本例中的261MB;

附录:
Resource settings中的Reservation、limit、Configured、Shares,则分别代表了系统管理员通过Resource Control手段执行的对VM的资源管理手段;
Resource settings中的Overhead Reservation则表示预留内存资源的开销情况;
Resource settings中的Worst Case Allocation则是一个比较糟糕的情况,它预示着虚拟机消耗掉了所分配到的所有内存资源,这种情况下,就预示着ESXi Host的Overcommititng会很高;

未完待续……图文详情附件 (图文)详解vSphere 5.x中的内存管理相关概念 - Part1.pdf (224.03 KB, 下载次数: 29)

论坛徽章:
4
综合交流区版块每日发帖之星
日期:2015-09-07 06:20:00综合交流区版块每日发帖之星
日期:2015-09-07 06:20:00IT运维版块每日发帖之星
日期:2015-09-07 06:20:00IT运维版块每日发帖之星
日期:2015-09-07 06:20:00
2 [报告]
发表于 2015-11-16 15:05 |只看该作者
详解vSphere 5.x中的内存管理相关概念之Transparent Page Sharing - Part2

前文,我们就vSphere 5.x中内存的相关概念做了一个初步的阐述,其中包括Host Memory和Guest Memory以及其下面的各种子概念,如果对这部分基础概念还不太清晰的朋友,请查阅(图文)详解vSphere 5.x中的内存管理相关概念 - Part1文档。带着对这些基础概念的认知,本文将重点介绍下关于前文所阐述的Transparent Page Sharing(TPS)、Memory Compression、Balloon Driver和Swap Out这几个内存回收技术的相关细节;

ESXi作为VMware核心产品序列vSphere中的核心组件,是一个插入Virtual Guest OS与Hardware之间的Hypervisor层,雄踞业界NO.1多年,无人可以撼动。抛开其它领先业界的功能不说,它在处理CPU、Memory、Storage和Network等各方面核心Resource方面,有着无以伦比的优势,正是综合了这些功能,所以它多VMs并发支持方面尤其强大。关于CPU、Storage和Networking相关的东西另行它文讨论,本文,核心放在ESXi的内存管理中下列几个组件的详细工作原理和晓能:

•        Transparent Page Sharing(TPS) - 通过将相同部分虚拟机内存地址段映射到同一个物理内存地址,实现内存层面的消重,达到内存利用率提升的目的;
•        Memory Compression - 通过压缩待被Swap Out的页面到Physical Memory Cache空间,实现提升虚拟机内存地址空间的物理利用率;
•        Balloon Driver - 这个选项则是通过利用随VMware Tools安装到Virtual Guest OS里面的一个系统驱动,来实现从虚拟机OS里面回收Unused和Inactive部分内存,以便为ESXi提供更多for Virtual Machine用途的资源,用于支撑更多VMs或更高优先级VM的资源需求;
•        Swap Out - 运行任何一台虚拟机时,都会随之伴生1个*.swap文件和1个vmx-*.swap文件,它相当于Windows OS里面的Pagefile或Linux OS里面的Swap分区,用作物理内存不足时临时补充物理内存用,是一种物理内存的补充技术手段,为迫不得以情况下的最后变通手段。在vSphere 5.1里,它由Host Swap和Swap两个部分构成,前者用于将Cache部分放置到Host的专有存储上(例如:SSD),用于提升性能。后者常规情况下和VMs存放在一起;

那么,它们究竟怎样工作的呢?下面,就针对上述几个技术,一一详细阐述它们的工作原理;

备注:下文中的概念预解释如下:
•        LPN = Logical Page Numbers,表示应用程序级别的逻辑内存页面;
•        PPN = Physical Page Numbers,表示虚拟机OS级别的内存页面;
•        MPN = Machine Page Numbers,表示虚拟机内存页面在物理地址上的空间开销;
•        VMM = Virtual Machine Monitor,表示vmkernel运行VMs后消耗的非固定内存页面;
•        EPT = Extended Page Tables,表示Intel主机的扩展页面地址表;
•        RVI = Rapid Virt Indexing,表示AMD主机的扩展页面地址表;
•        MMU = Memory Management Unit,表示内存管理单元;

Transparent Page Sharing(TPS)
首先看看下图所示:


正常情况下,运行单台虚拟机,例如上图中的vcenter-vm01,它会消耗掉若干的地址段,例如上图中的a、b、c、d、e、f、g之类的地址段。运行任何一台VM,都会有相同的情况出现,例如上图中的vcenter-vm01、vcenter-vm02和vcenter-vm03,都会消耗不同或相同的一批内存地址空间,每台VMs都会有a、b、c、d之类的地址空间消耗。本例中,大家通过分析上面的图,可以得知,由于每台VM都是vcenter,它们运行相同的OS,因此,一定会有相同的地址。一台台VM的看,首先分析vcenter-vm01这台vm:
•        vcenter-vm01 - 它的LPN中,包含a、b、a、c、d、b、d,那么,体现到它的PPN,也就会对应生成a、b、a、c、d、b、d,如下图所示:
         
          将PPN的内容体现到MPN时,在开启了TPS之后(ESXi系统默认开启),它就会执行消重动作,将LPN > PPN > MPN中的相同地址段通过Hash计算后,指向MPN中同一个空间位置,因为相同的LPN或PPN都会有一个相同的hash值,本例中以a为例,Hash值为06af;
•        vcenter-vm02 - 它的LPN中,包含了a、b、e、d、b、f,那么,体现到它的PPN,也就会对应生成a、b、e、d、b、f,如下图所示:
         
          将PPN的内容体现到MPN时,在开启了TPS之后(ESXi系统默认开启),它就会执行消重动作,将LPN > PPN > MPN中的相同地址段通过Hash计算后,指向MPN中同一个空间位置,因为相同的LPN或PPN都会有一个相同的hash值,本例中以a为例,Hash值为06af;
•        vcenter-vm02 - 它的LPN中,包含了a、b、b、g,那么,体现到它的PPN,也就会对应生成a、b、b、g,如下图所示:
         
          将PPN的内容体现到MPN时,在开启了TPS之后(ESXi系统默认开启),它就会执行消重动作,将LPN > PPN > MPN中的相同地址段通过Hash计算后,指向MPN中同一个空间位置,因为相同的LPN或PPN都会有一个相同的hash值,本例中以a为例,Hash值为06af;

TPS通过系列消重处理和Hash计算之后,3台VMs的内存消耗将为a、b、c、d、e、f、g,而在执行TPS消重之前,应该为a、a、a、a、b、b、b、b、b、b、c、d、d、d、e、f、g,节省了3个a空间、5个b空间和2个d空间,变相节省了物理内存。TPS的消重,选用了透明页面共享技术,它通过将VMs相同的内存开小部分,映射到底层物理内存的相同位置,并且将这部分设为只读模式,提升了内存空间利用率。不过,如果当发生了内存地址变更时,则这个会自动在底层增加新的内存页面。因此,TPS的工作能力自然也是有限制的,毕竟不是所有地址页面都相同的,比如本例中就有a、b、c、d、e、f、g等页面。
通常情况下,在了解清楚TPS的工作原理之后,规划时,作为一个资深的架构设计师,就应该明白,规划一个企业解决方案时,怎样最大化内存资源利用率,当然,规划时需要考量的除了这个因素外,还有其它方面需要同时考虑,但是毋庸置疑的是,内存利用最大化是一个必不可少的规划关键点。

默认情况下,ESXi会开启TPS选项,当然,用户也可以根据需求自行选择是否进入到高级设定里关闭掉,不过,本猫强烈建议不要关闭它。通常情况下,TPS的工作效能在View或Xendesktop的环境下最佳,根据非官方测算数据来看,它甚至可以节约内存空间超过60%以上,很棒的一个东西。

这个TPS并不以牺牲性能为代价,所以,强烈建议保持默认开启;

未完待续……

备注:本站系列文档配图皆来自VMware官方;
图文详情请下载附件
(图文)详解vSphere 5.x中的内存管理相关概念之Transparent Page Sharing(TPS)- Part2.pdf (333.7 KB, 下载次数: 50)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP