因为内存通常是最有限的资源,ESXi采用内存过量配置(Memory overcommitment,即配置后的虚拟机内存可能超过物理内存(RAM))对内存进行管理。使用内存过量配置时,ESXi必须使用技术从一个或多个VM中回收内存,这些技术被称为:透明页面共享(Transparent Page Sharing,TPS)、气球(ballooning)、交换(swap)和内存压缩(Memory compression)。

1、  透明页面共享

ESXi主机运行相同操作系统的VM时,保存一个可能相同的内存页面,释放相同其它重复的页面。这一过程对OS完全透明,并不知道自己和其它VM共享一个相同的内存页面。

2、 气球

从运行的VM中取得不需要的内存,并将其分配给其它需要内存资源的VM。在生产环境中,系统正常运行工作时,需要的内存很少,而启动时分配的内存远大于正常工作时所需的内存,从而造成大量的内存资源未使用(称为闲置内存,idle memory),并很少使用。因为内存是共享的,因此可以收回供其它VM使用。

此时出现一个问题,ESXi怎么确定在使用气球技术回收内存资源时,哪个VM会释放内存呢?

共享(share)解决了这一难题。共享定义了VM的优先级,有4个级别:低、中、高和自定义(使用1:2:4比例或自定义比例)。ESXi主机优先从共享级别低的VM中回收内存,给共享级别高的VM使用。

此时,又出现了另一个问题:优先级设置比较高的VM可能积累一些或大量内存未使用,而优先级设置比较低的VM需要使用大量活动内存,由于共享并未规定使用活动内存的标准,因此,优先级设置比较低的VM将受到惩罚。

我们可以有一个思路:无论VM的共享优先级是什么,优先回收空闲的内存。这种思路就是ESXi的闲置内存税(idle memory tax)。默认情况下,闲置内存税参数被设置为75%,即回收闲置内存的75%。闲置内存税赋予ESXi主机使用内存页面的样本概率方法进行内存回收。每个VM都在一个可设置的时间间隔内单独采样,默认情况下,ESXi每30秒采样100个页面。

3、 交换

气球技术的全面性,保证了能够高效回收内存,但是此时出现一个问题需要解决,就是内存资源全部都在使用中,这样就无法回收内存资源。

当VM启动时,创建一个扩展名为.vswp的交换文件。只有能够创建和访问这个文件时才能启动VM(这意味着应该注意可用的存储空间)。

ESXi主机使用交换文件是为了防止出现使用内存过量配置但气球驱动程序无法从其它VM回收内存的情况。在这种情况下,ESXi使用磁盘作为内存。但是这个技术可能永远不会使用,因为磁盘访问会大大影响性能。交换的唯一好处就是内存不足的时候VM不会崩溃。

注意:硬盘访问时间是以毫秒(ms,千分之一秒)计算,而内存访问时间以纳秒(ns,十亿分之一)计算,两者相差100万倍。因此交换技术应该不会永远使用。

4、 内存压缩

内存压缩的原理是将要交换的页以压缩的形式存储在被保护的内存空间中,当系统访问该页引起缺页时,系统会内存中找到该被压缩的页,并将其解压缩后供系统使用。内存压缩在系统存储层次中逻辑地加入了一层:内存压缩层,因此,可以说内存压缩层是虚拟化管理器决定硬盘上交换页面的中间层。

对压缩内存的访问快于硬盘访问,没有太多的性能损失。当一个虚拟页面必须交换时,ESXi首先试图在2KB或者更小的块上面压缩。

这是本人写的第一篇关于虚拟化的博客,也是第一次写博客,有不足之出希望大家多多斧正指教。

转载于:https://blog.51cto.com/kevinhao/1550973

ESXi主机管理内存资源的方式相关推荐

  1. C++ 以智能指针管理内存资源

    1.简介 C++ 作为一门应用广泛的高级编程语言,却没有像 Java.C# 等语言拥有垃圾回收(Garbage Collection )机制来自动进行内存管理,这也是C++ 一直被诟病的一点.C++ ...

  2. 如何配置 ESXi 主机管理网络?

    配置 ESXi 主机管理网络 VMware ESXi管理网络提供ESXi主机和客户端之间的通信.在服务器上安装 ESXi 虚拟机监控程序后,将通过动态主机配置协议(DHCP)获得ESXi管理IP.你可 ...

  3. 报警服务器物理内存,从内存告警谈ESXi主机内存管理——内存构成

    在<如何处理ESXi主机的黄色告警>一文中我们提到了在没有冗余的管理网络或启用SSH的情况下,ESXi主机图标右下方将会出现黄色的告警.除了上述配置导致告警之外,另一种常见的告警就是ESX ...

  4. 存储与虚拟主机管理,克隆虚拟机的详细讲解

    存储与虚拟主机管理 本章的重点了解及部署vmotion迁移,迁移前需要准备外部存储网络,本章将围绕这几个点进行讲解以及部署openfiler和vmotion进行迁移 esxi存储是虚拟化平台的基础,分 ...

  5. Linux内核:一文搞懂外设I/O内存资源的静态映射方式

    Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc). 动态映射(ioremap)方式 动态映射方式是大家使用了比较多的,也比较简单.即直接通过内 ...

  6. VMware之无vCenter Server管理的环境下ESXI主机配置与虚拟机的创建

    上一篇文章给大家介绍了ESXI主机的控制台的使用,主要学习了如何在控制台对管理网络的配置,比如管理接口网卡的配置,Vlan的配置,控制台主机地址等等,学会了这些简单的基本配置,接下来咱们来点常用的并且 ...

  7. 服务器的虚拟机网速如何分配,管理ESXi主机网络与虚拟机网络

    网页端:建议访问https://www.liuluanyi.cn 概述 计算.存储.网络是虚拟化中最重要的三个节点,而网络则是用来管理vSphere服务器,以及虚拟机对外提供服务的必经之路.所以,网络 ...

  8. 11 操作系统第三章 内存管理 内存的基本知识 内存管理 内存空间扩充 连续分配管理方式

    文章目录 1 内存概念 1.1 内存作用 1.2 逻辑地址VS物理地址 1.3 装入的三种方式 1.3.1 绝对装入 1.3.2 可重定位装入 1.3.3 动态重定位装入 1.4 链接的三种方式 1. ...

  9. windows 内存管理的几种方式及其优缺点

    windows 内存管理方式主要分为:页式管理,段式管理,段页式管理. 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页:页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地 ...

最新文章

  1. java五子棋用到的类_JAVA五子棋用到的知识点以及方法类有哪些?
  2. 阿里云安全组——添加安全组规则(开放端口)
  3. 代码段编辑器SnippetEditor 2.1
  4. 会议室分配时间最长_论文导论动态任务分配GPU上图计算的高效处理方式
  5. OK335xS dhcpcd porting
  6. Liist Object ? 获取方式
  7. angularjs 循环完之后执行的事件
  8. windows 核心编程下的内存映射文件
  9. 快速将多个excel表合并成一个excel表---内附代码
  10. qq里测试音色的软件,QQ换音大师2015(QQ消息提示声音修改软件)
  11. matlab插值表,[转载]matlab插值介绍
  12. Hadoop名词解释
  13. 假设检验及在机器学习中的应用
  14. 10款免费原型设计工具,产品设计得力助手
  15. python对seo有什么用_pythonseo-python对于做SEO主要有什么作用
  16. Windows7 个人服务详解及优化
  17. PT2264\pt2294(带编码)无线、接收、收发
  18. SQL操作全集[自己收藏]|Findnet.com.cn
  19. Windows 10开启ISS Web服务
  20. bp神经网络图像特征提取,一文搞定bp神经网络

热门文章

  1. C++(STL):29 ---关联式容器map 迭代器
  2. 在GoogPlay上发布的包Facebook登录失败提示签名问题
  3. RPC、RMI与MOM与组播 通信原理 .
  4. select选中的值_selenium下拉框处理(select)
  5. centos网络隔一段时间就断_计算机网络总结
  6. python每天定时9点执行_python定时器每天订时执行的实例方法
  7. C++ puts函数 打印字符串很方便
  8. ECC密钥结构和密码学基础
  9. 在Ubuntu环境下使用vcpkg安装sqlite_orm包文件
  10. 以太坊智能合约 编译脚本