Hyper-V 内存管理必须知道的

Windows Server 2008 R2 SP1以前的Hyper-V版本中,管理员只能固定指定虚拟机所使用的物理内存大小,当虚拟机启动时,自动将管理员分配的内存彻底占用。可能会出现如下2个问题:服务器

一、当管理员分配给虚拟机的内存大小没法知足应用的需求时,管理员须要在关闭虚拟机的状况下(Hyper-V不支持内存热插拔),对其内存占用大小从新进行调整。ide

二、当管理员给虚拟机分配过多的内存时,虚拟机应用在不须要使用这么多内存的状况下,将形成资源的浪费。优化

Windows Server 2008 R2 SP1 Hyper-V提供的内存动态管理功能,将解决遇到的内存应用瓶颈。操作系统

内存过量使用

内存过量使用,容许虚拟机使用比物理主机可用的更多的内存。例如,宿主机有2GB内存,就能够在其上运行四台拥有1GB内存的虚拟机。内存能过量使用由于有比宿主机更多的虚拟内存。所以,管理员可以最大化物理计算机中运行的虚拟机数量,而不用理会物理内存的限制。内存

若是没有内存过量使用功能,分配给虚拟机内存的数量最多只能是和宿主机相同数量的内存。但实际上,虚拟机一般消耗的内存比其须要的少,这会浪费物理内存空间,并限制了在服务器上能运行的虚拟机数量。例如,一台8GB 内存的Hyper-V服务器,可能在服务器上部署三台虚拟机,每一个分配2GB,并预留2GB给主机操做系统,虽然这台服务器有足够的CPU和磁盘资源来宿主更多虚拟机,但内存成为限制因素。Hyper-V Dynamic Memory里含有一个选项(内存缓冲区)能解决这个问题。资源

Hyper-V不容许内存过量使用,例如若是分配4GB内存给Hyper-V的一台虚拟机,虚拟机实际只使用2GB。启动虚拟机后,Hyper-V检查是否有4GB的物理内存可用。若是这样的话,内存就被“锁定”,所以只能用于该虚拟机。若是4GB不可用,虚拟机就不能启动,即便虚拟服务器须要的2GB内存可用也不行。部署

Hyper-V提供“内存缓冲区”、“内存权重”以及“内存优先级”。Hyper-V容许根据内存使用率优化虚拟机。当出现争用内存的状况,高优先权虚拟机首先得到内存。由于内存竞争会迫使虚拟机用光内存,若是虚拟机须要但又没有可用的内存。“Hyper-V管理器”显示每台虚拟机可用的内存,帮助管理员在Hyper-V上更好地管理内存分配。虚拟机

启动内存

启动内存,是指操做系统启动所须要的最小内存容量加上开启应用程序所须要的内存容量。启动内存值和处于“静态”模式下的内存设置相同。it

例如Microsoft Exchange Server 2010至少须要4 GB的系统内存,即便用8GB来运行一个虚拟系统,而操做系统和应用程序须要的最低内存是4GB,那么启动内存设置就是4GB,所以应该把启动内存设置与操做系统和应用程序启动所须要的最低内存容量保持一致。class

最大内存

最大内存,是Hyper-V能够为虚拟机提供的最大内存容量,默认设置为64GB 。Hyper-V会根据实际须要的容量自动分配。

例如,应用程序会要占用所有内存。在这些状况下,把最大内存设置应该分配给应用程序和操做系统最大内存容量。另外,若是最大内存值不是64GB,内存动态管理功能不能启用。