基于VMware vSphere的虚拟化平台,内存分配是如何实现的?

https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650627417&idx=3&sn=087a18d02b79eedb60f02caf375db0db&chksm=bef923df898eaac9dcf7c4ead014a50a96bc17a5c9f12e919293636c6da9ee11b9a7449724c2&scene=21#wechat_redirect

twt企业IT社区 2017-05-31

来自社区活动:基于VMware vSphere的虚拟化平台答疑专场

aerolite  (VMware 系统工程师) 答:

内存管理:

透明页共享(Transparent Page Sharing):

当多个虚拟机在一个主机上运行时,可能有些内存页是一样的,比如一样的Guest OS。hypervisor通过周期性的扫描内存页生成hash值在内存hash总表中查找,一旦hash匹配就会进行完整比较,确认内存页完全一样后hypervisor会删除冗余内存页以指针代之,类似于存储中的重复数据删除功能。当某虚拟机对共享内存页试图写时,hypervisor会复制一个这个虚拟机的专有页来修改,保证共享页不被破坏。这种内存回收的速度取决于扫描的速度,在ESX(i)的高级设置中可以设置扫描速度和时间间隔。所以最好将相同或者相近的OS部署在一台host上面,以便更好的使用TPS节省内存。

气球膨胀(Ballooning):

由于hypervisor无法得知虚拟机中哪些内存是空闲的,因此依靠VMware Tools在Guest OS中的气球驱动(balloon driver)来回收内存。当需要从该虚拟机回收内存时,气球膨胀从Guest OS中请求内存,分配给气球驱动的内存可被hypervisor安全的回收,Guest OS自行决定将哪些内存swapping交换到硬盘上以保证分配给气球驱动内存。显然需要安装VMware Tools才能实现气球回收内存,通过这种方式回收内存较慢,依赖于Guest OS内存分配的速度。

内存交换(Hypervisor Swapping):

当虚拟机启动时就会创建一个内存swap文件,文件大小为最大内存交换量(虚拟机配置内存-内存预留)。当上面两种回收方式不能满足需求时,hypervisor会进行swapping将虚拟机的物理内存交换到硬盘上。hypervisor并不知道将哪些内存交换好,Guest OS也不知道哪些内存被交换了,这将极大的影响虚拟机的性能,当出现这种情况时说明需要加内存了。

内存压缩(Memory Compression):

这是4.1版本的新功能,对内存的交换的优化。如果swapping的内存页是可压缩的,则将其压缩后存储在压缩缓存区中,这样再次访问这个被swapping的内存时仅需要解压缩,而不是从硬盘读取,这将快的多。不能压缩或压缩缓冲区满则会与硬盘进行真正的swapping。在ESX(i)的高级设置中可以设置压缩缓存的大小等。

以上内存管理都是当内存不足的时候才会产生的行为。

当内存够的时候只会有Transparent Page Sharing默认开启,其它功能都不会参与。

另外,如果在内存不足的情况下,可以给特定的VM分配特定的内存大小,就可以在VM上分配好预留内存.reservation

一般国内用户很少会使内存占满,拿一个三台ESXI CLUSTER来说,假如三台ESXI内存总量300G,那么比较合理的VM内存使用量小于200G,因为要保证一台ESXI可以进入硬件维护。

内存比较便宜,所以服务器加内存是最容易的扩容之一。

基于VMware vSphere的虚拟化平台,内存分配是如何实现的?相关推荐

  1. 基于VMware vSphere 5.0的服务器虚拟化实践(9)

    基于VMware vSphere 5.0的服务器虚拟化实践(9) 2012-12-31 13:07:57 标签:虚拟化 VMware vSphere 十全十美 原创作品,允许转载,转载时请务必以超链接 ...

  2. 基于VMware vSphere 5 企业虚拟化部署之六:VMware Center管理ESXi和配置资源池

    基于VMware vSphere 5 企业虚拟化部署之六:VMware Center管理ESXi和配置资源池 作者:杨坚 通过对VMware vCenter的管理来实现对ESXi服务器的管理.进行性能 ...

  3. VMware vSphere 服务器虚拟化之十七 桌面虚拟化之安装View链接服务器

    VMware vSphere 服务器虚拟化之十七 桌面虚拟化之安装View链接服务器 View链接服务器(View Connection Server)是Vmware Horizon View桌面虚拟 ...

  4. VMware vSphere 服务器虚拟化部署安装图解

    转自@twt社区 一.VMware vSphere部署的前期规划要点 1.如何利用现在的设备架构虚拟化环境 在虚拟化过程中,用户大多会考虑目前现有的服务器.存储.交换机等基础设备是否可以使用,这需要根 ...

  5. VMware vSphere 服务器虚拟化部署安装图解(资源)

    2019独角兽企业重金招聘Python工程师标准>>> 转载来源 :talkwithtrend :https://mp.weixin.qq.com/s/OJUINggNmiasooX ...

  6. 基于VMware_vSphere的银行虚拟化平台设计 ——网络存储课程设计

    一.引言 随着银行业务量的不断提升以及客户数量的持续增长,银行数据库和应用的数量也随之扩大,因而服务器的使用数量也相应增长.过多的物理服务器导致巨大的性能浪费,银行的运维成本不断攀升,如何使服务器性能 ...

  7. 基于VMware_vSphere的银行虚拟化平台设计 ——网络存储课程设计

    一.引言 随着银行业务量的不断提升以及客户数量的持续增长,银行数据库和应用的数量也随之扩大,因而服务器的使用数量也相应增长.过多的物理服务器导致巨大的性能浪费,银行的运维成本不断攀升,如何使服务器性能 ...

  8. 基于vmware服务器虚拟化管理,基于Vmware的服务器虚拟化管理论文.doc

    基于Vmware的服务器虚拟化管理毕业论文 目录 1 课题的研究背景1 1.1 课题研究背景1 1.2 企业信息中心的背景1 1.3 本论文主要研究的内容和工作成果3 2 虚拟化技术概述5 2.1 虚 ...

  9. 服务器虚拟化的毕业设计,基于Vmware的服务器虚拟化管理毕业论文.doc

    基于Vmware的服务器虚拟化管理毕业论文 目录 1 课题的研究背景1 1.1 课题研究背景1 1.2 企业信息中心的背景1 1.3 本论文主要研究的内容和工作成果3 2 虚拟化技术概述5 2.1 虚 ...

最新文章

  1. 【Qt】qss样式表之:自定义属性实现动态切换样式
  2. Linux里面的正则表达式!
  3. python做词云做文本处理_文本挖掘——python词云实现
  4. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...
  5. 微信终端跨平台组件 Mars 系列(三)连接超时与IPPort排序
  6. C#设置WebBrowser IE浏览器版本
  7. C#数据库事务原理及实践(下)
  8. spring学习(6):使用xml方式实现spring基本应用
  9. leetcode - 375. 猜数字大小 II
  10. 计算机二级office函数日期,Excel函数-日期和文本函数-计算机二级Office
  11. linux eclipse web项目,Eclipse中web项目部署至Tomcat步骤
  12. electron sqlite3_Electron+React+Antd工程搭建
  13. DSP之外部设备连接接口之HPI
  14. atitit 知识压缩的总结 学习方法总结v2 t55.docx 目录 1.1. 压缩目的 1 1.2. 压缩分类 无损压缩 有损压缩 1 2. 功能指标 2 2.1. 压缩比:有损压缩一般1
  15. POP模式,提示密码错误的问题(密码是对的)
  16. 查找文件命令find和文件内容查找命令grep
  17. 关于Tomcat以及我是个小机灵鬼这回事
  18. QT学习11:clicked和toggled信号
  19. 【组队学习】【33期】组队学习内容详情
  20. 爬取酷狗歌曲并进行下载用的是selenuim

热门文章

  1. php scope权限管理,关于微信公众号scope参数错误或没有scope权限的解决方案
  2. 计算机网络 第四章 网络层
  3. python编辑器中文字体倒立的_matplotlib的安装和允许中文及几种字体
  4. ticwatch能支持鸿蒙吗,[杰瑞]安卓手表的最强形态,应该... - @魔法师蛋小丁 的微博精选 - 微博国际站...
  5. 贝叶斯判别分析的基本步骤_贝叶斯分析助你成为优秀的调参侠(1)
  6. ajax 请求_你了解前端出现Ajax跨域请求的原因吗?
  7. controller接收json数据_这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了
  8. C语言之字符串探究(八):strchr、strstr、strtok
  9. c语言用指针删除链表free,leetcode剑指 Offer 18(删除链表的节点)--C语言实现
  10. listctrl 优化_上海SEO整站优化公司_新站整站快速排名优化