Hyper-V如何计算动态内存

尽管动态内存可让单个物理计算机管理更多的虚拟系统,但有时是想使用静态设置。若是应用程序使用预先定义的内存容量取得最好的性能,就能够用静态设置保持它使用的内存数量不变,也就是没有必要启用动态内存。 内存缓冲区

内存缓冲区为虚拟机提供比实际需求更多的内存空间。虚拟机的内存缓冲区不以MB计算,而Hyper-V尝试保留为高于当时提交内存的额外值的内存百分比。默认设置20%,如图1所示。算法

内存缓存区是Hyper-V虚拟内存的基本设置,为每台虚拟机保留额外空间。缓存

当内存需求在某个一两秒间隔内忽然增大时,可使用保留区域。ide

在没有缓存的状况下,这一两秒内忽然增大的内存需求,会迫使虚拟机进入内存溢出状态,该状态下自动将内存页面文件写入磁盘,数据从高速运行的内存空间中转移到相对而言极慢的磁盘上,会致使计算性能的明显下降。性能

当内存需求发生改变时,额外保留的空间能够下降虚拟机把内存数据写入磁盘的几率。同时,更大的缓存空间也带来了浪费。操作系统

保留的内存区域老是处于可用状态,所以在虚拟机用到它以前都是闲置的。从设置看,用户灵活性很大,该比率能够是5%到95%之间的任意数字。blog

比较好的方式是,开始的时候设置的小一点。由于,当发现虚拟机老是发生写入磁盘的状况时,能够随时对比率进行调整。ip

clip_image002

图1内存

内存计算

Hyper-V动态内存功能,经过调用内存压力来计算并肯定出虚拟机所须要使用的内存大小值。get

Hyper-V动态内存增加采用内存热插拔算法,而内存缩减采用的则是冒泡算法。虚拟机

若要执行这一运算过程,Hyper-V须要知道虚拟机中所运行的来宾操做系统所提交的总内存大小,以做为虚拟机所需内存大小计算比例的压力。

Hyper-V会分配给虚拟机管理员设置的一个起始内存值,再附加一个缓冲区做为动态附加内存。

虚拟机系统一般使用此额外的附加内存做为其系统文件缓存以加强操做系统和应用程序的性能。

微软制定的缓冲区百分比范围为5%至95%,默认值为20%。如图2所示。

clip_image004

图2

计算公式

虚拟机可用内存计算公式:

虚拟机可用内存=启动内存+启动内存*(缓冲区百分比/(1-缓冲区百分比))

计算实例

管理员为某虚拟机设置内存大小为1200MB,缓冲区百分比为20%,则Hyper-V会附加额外的20%/(100%-20%) x 1200 MB = 300 MB内存,即总共1500MB内存给虚拟机。

若是此例中的缓冲区百分比设置为80%,则Hyper-V会附加额外的80%/(100%-80%) x 1200 MB = 4800 MB内存,即总共6000MB内存给虚拟机。

相关文章
相关标签/搜索