ESXi主机管理内存资源的方式

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

一、  透明页面共享性能

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

二、 气球操作系统

      从运行的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个页面。it

三、 交换io

        气球技术的全面性,保证了可以高效回收内存,可是此时出现一个问题须要解决,就是内存资源所有都在使用中,这样就没法回收内存资源。

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

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

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

四、 内存压缩

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

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

       这是本人写的第一篇关于虚拟化的博客,也是第一次写博客,有不足之出但愿你们多多斧正指教。

相关文章
相关标签/搜索