Windows Server 2012 中动态内存新特性

简介:

在Windows Server 2008 R2 SP1 Hyper-V中已经增加了内存优化功能,不过在Windows Server 8 现更名为Windows Server 2012中有了更亮眼的改变!

在Windows 2008 R2增加的动态内存中,允许设置动态物理内存共享区域,这样可以保证在Hyper V中将物理内存视为共享资源,根据虚拟机的需求动态分配和回收可用内存。

不过由于虚拟机操作系统启动时往往需要的内存空间大于启动以后进入不活跃状态所需要的内存,但是为了确保虚拟机再次启动可以成功,因此这部分大于系统最小保留的“启动所需”内存空间需要考虑设置为启动内存保留在内,因此可能造成了一定的内存空间浪费。

考量虚拟化密度很多时候各厂商都在强调内存超量分配技术,例如可以通过内存页共享(当然尽量使用大的内存页否则计算冗余内存页将耗费很多时间和CPU),内存压缩,内存释放等技术;但是请不要忘记一个问题,就是当释放掉的某虚拟机的非活跃内存用于其他虚拟机使用时,很可能会造成该物理环境的物理内存启动虚拟机预留内存不足的启动失败,因此无论如何设置启动的内存部分还是要浪费不必要的启动内存空间;那么有没有更好的办法解决呢?

 

 

Windows Server 2012中给出了很好的答案:

我们可以设置: 

  • 虚拟机所用的最大内存

  • 可以在线的修改虚拟机设置动态内存部分设置 (动态在线内存修改)

  • 设置启动内存,最小内存和最大内存

  • 在虚拟机创建时就可以激活动态内存功能

 Dynamic Memory Windows Server 8

 

动态内存主要用到了以下一些机制:

  • 最小内存

允许Hyper-V从虚拟机内部回收不活跃内存,这样就可以大幅度增加共享物理内存资源,对于高密度(尤其是虚拟桌面环境)会有很大的帮助。

当然,考虑到上述启动内存的一些要求和限制,一般方面为了避免启动虚拟机失败,另一方面又要综合考虑充分利用物理内存资源提高密度,新的“智能页调度功能”产生了。

  • 智能调页

当设置最小内存引起潜在的系统启动失败问题时,Hyper-V会自动在指定的物理磁盘上映射一个临时的页面缓冲区,当然考虑到磁盘的寻址时间比内存慢很多,因此智能调页仅用于:

    • 虚拟机启动

    • 物理内存不足

    • 没有其他物理内存可以被回收使用的情况

个人感觉可以适当采用一些固态盘作为临时缓冲区,降低启动时可能引起的一些IO响应延迟。

对于调页这个部分需要强调一下,虽然有些厂商强调其可以利用二级调页提高内存超用技术,这显然是有前提的;对于内存调页机制来说本来系统就有此功能,试想一下真要是到了物理内存吃紧,Hypervisor需要乱序Paging到物理硬盘的时候,你懂得:Hypervisor是不会顾及到虚拟机内部哪些物理内存是系统运行时需要的,这是很恐怖的“压缩比性能响应效应”,要知道DDR3-1600内存的响应时间是5ns,高性能磁盘寻址响应时间是8ms左右,这是1,6000000倍的差别,如果不能做到智能调页那么最好选择的方式还是在虚拟机内部自己系统调页解决啊~

 

  • 虚拟机内部调页

考虑到上述问题,虚拟机内部的内存页控制是必不可少的。

  • 内存空间气球技术利用

为了减少智能调页可能产生的影响,虚拟机完成了启动之后;Hyper-V会自动气球回收技术讲虚拟机内部的这部分临时内存空间释放。

  • 内存动态配置

可以在线分配(增加减少)虚拟机的物理内存

 











本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/968501,如需转载请自行联系原作者
目录
相关文章
|
28天前
|
Linux Windows
Windows Server 下文件同步
Windows Server 下文件同步
18 0
|
1天前
|
安全 关系型数据库 虚拟化
WIndows Server 远程桌面服务—RDS
WIndows Server 远程桌面服务—RDS
|
1天前
|
开发框架 JavaScript 安全
WIndows Server 2016 部署 Web服务(简单篇)
WIndows Server 2016 部署 Web服务(简单篇)
|
1天前
|
安全 测试技术 网络安全
WIndows Server 2016 部署 PKI + 证书
WIndows Server 2016 部署 PKI + 证书
|
8天前
|
网络协议 Windows
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
|
13天前
|
SQL 数据管理 关系型数据库
如何在 Windows 上安装 SQL Server,保姆级教程来了!
在Windows上安装SQL Server的详细步骤包括:从官方下载安装程序(如Developer版),选择自定义安装,指定安装位置(非C盘),接受许可条款,选中Microsoft更新,忽略警告,取消“适用于SQL Server的Azure”选项,仅勾选必要功能(不包括Analysis Services)并更改实例目录至非C盘,选择默认实例和Windows身份验证模式,添加当前用户,最后点击安装并等待完成。安装成功后关闭窗口。后续文章将介绍SSMS的安装。
13 0
|
28天前
|
关系型数据库 MySQL C++
Windows Server 2012R2 安装mysql 丢失VCRUNTIME140_1.dll------亲测
Windows Server 2012R2 安装mysql 丢失VCRUNTIME140_1.dll------亲测
13 0
|
5月前
|
存储 安全 Apache
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
2023-10 适用于基于 x64 的系统的 Windows Server 2012 R2 月度安全质量汇总(KB5031419)
310 2
|
10月前
|
缓存 JavaScript 前端开发
Windows7压缩包安装node.js 报错提示windows Server 2012 R2 和安装React脚手架 最详细教程
对于Windows 7安装node.js 提示“This application is only supported on wWindows 8.1,windows Server 2012 R2, or higher.”类似这种情况的,该问题是因为node.js官方在 x12版本后就不支持win7系统了。
|
1月前
|
Ubuntu 安全 Linux
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置(Windows版详细教程)
【Linux】安装VMWare虚拟机(安装配置)和配置Windows Server 2012 R2(安装配置连接vm虚拟机)以及环境配置(Windows版详细教程)
248 0

热门文章

最新文章