一台服务器能够支持的虚拟机数量通常取决于物理硬件所能够提供的可用计算资源。大多数资源, 比如处理器周期、存储I/O和网络带宽等,都能够相对简单地进行共享。这种做法的原理在于负载并不总是处于忙碌状态,因此共享——或者过度使用——资源能 够实现更高等级的负载整合,因此为虚拟机分配的资源总量和可以超过当前物理资源的总数量;就算在特殊情况下出现问题,也只不过是对负载性能产生轻微影响。 然而 ,服务器内存一直以来都被视为一种固定资源。由于每台运行在内存当中的虚拟机都是应用程序和数据集合的完整镜像,因此为所有虚拟机提供足够的内存资源是十 分重要的。否则,服务器将不得不使用硬盘上的交换文件(swap file)来补充内存空间——但是通常这种方式会对虚拟机的性能造成极为严重的影响。但是随着内存过度使用和内存共享技术的出现,这种情况正在发生改变。 借助于内存过度使用技术,主机服务器所分配的内存数量可以超过现有的物理内存数量。比如,假设一台主机服务器拥有4GB物理内存,那么借助于内存过度使用 技术也许可以创建六台内存为1GB的虚拟机。乍看之下,这是一种非常危险的方式,因为两种负载不能同时共享相同内存地址空间当中的不同数据片——至少在将 数据交换到硬盘之前是不可以的。 但是设计者很快意识到许多虚拟机并不会使用为其分配的全部内存空间,导致部分内存空间基本上被浪费了,因为一直处于空闲或者未使用状态。 Hypervisor能够寻找处于空闲状态的内存,并且将其提供给需要使用的虚拟机。如果没有其他虚拟机需要额外的内存,那么这些空闲空间可以被用来创建 新的虚拟机。可以在“共享(Shares)”虚拟内存配置当中定义虚拟机在内存池当中的优先级,并且还可以通过“预留(Reservation)”机制定 义虚拟机能够使用的最小内存空间,保证虚拟机拥有足够内存以正常运行。 虚拟机还能够共享大量内容。比如,上面提到的六台1GB内存虚拟机全部运行Windows Server 2012 R2,其中两台虚拟机运行相同的业务应用。那么在这种情况下,五台Windows Server 2012 R2和一个应用程序就是冗余的。内存共享技术允许不同虚拟机使用相同内存页面当中的一个通用实例。这样就能够减少虚拟机需要使用的内存总数量,并且支持更 高等级的过度使用。内存共享技术的实现方式非常类似于硬盘存储当中的数据去重复化机制。 需要特别注意的是内存过度使用和内存共享都是高度动态的技术,会受到总计算负载和通用内容数量的影响。比如,很少使用的虚拟机能够为内存过度使用释放大量 内存空间,但是随着虚拟机使用频率的增加和内存需求的增长,hypervisor必须将这些内存返还给虚拟机,否则就会面临使用硬盘交换文件所带来的性能 问题。类似地,使用不同操作系统版本、应用程序和数据的虚拟机也许只有很少能够共享的通用内存页面。虚拟机迁移和负载均衡会改变通用内存页面,对内存共享 产生影响。

TechTarget中国原创内容,原文链接: http://www.searchvirtual.com.cn/showcontent_92654.htm
© TechTarget中国:http://www.techtarget.com.cn

内存压缩PK页面交换 解决内存问题谁更在行的更多相关文章

  1. linux内存源码分析 - 内存压缩(同步关系)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存压缩的页面迁移过程中的同步关系也 ...

  2. linux内存源码分析 - 内存压缩(实现流程)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请 ...

  3. Android 如何有效的解决内存泄漏的问题

    前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的作用. 本文的内存泄漏检测工具是:LeakCana ...

  4. C#内存压缩zip文件

    C#中我们使用比较多的文件压缩第三方DLL就是Ionic.Utils.Zip.dll.但是这个DLL只支持对现有文件进行压缩,而不支持内存压缩,如果需要使用内存压缩,那么有第三方DLL ICSharp ...

  5. [转]Android 如何有效的解决内存泄漏的问题

    Android 如何有效的解决内存泄漏的问题   前言:最近在研究Handler的知识,其中涉及到一个问题,如何避免Handler带来的内存溢出问题.在网上找了很多资料,有很多都是互相抄的,没有实际的 ...

  6. linux内存优化之手工释放linux内存

    先介绍下free命令 Linux free命令用于显示内存状态. free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等. 语法: free [- ...

  7. 内存与IO的交换【转】

    用户进程的内存页分为两种: file-backed pages(文件背景页) anonymous pages(匿名页) 比如进程的代码段.映射的文件都是file-backed,而进程的堆.栈都是不与文 ...

  8. VMSTAT监控CPU使用率,内存使用,虚拟内存交换情况

    Linux性能监控分析命令(一)—vmstat命令详解 一.vmstat介绍 语法格式: vmstat [-V] [-n] [-S unit] [delay [count]] -V prints ve ...

  9. SetProcessWorkingSetSize() 方法使内存降低了很多(把内存放到交换区,其实会降低性能)——打开后长时间不使用软件,会有很长时间的加载过程,原来是这个!

    在项目中对程序性能优化时,发现用SetProcessWorkingSetSize() 方法使内存降低了很多,于是查阅了相关的资料如下: 我的程序为什么能够将占用的内存移至虚拟内存呢? 其实,你也可以, ...

随机推荐

  1. April 9 2017 Week 15 Sunday

    In the evening one may praise the day. 入夜方能赞美白昼. I think that could be understand in different ways, ...

  2. Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.错误

    错误如图示: 1.在php的目录下建立个文件夹tmp,这个有权限的问题,如果是ntfs的分区,就一定要添加evryone的控制权限,否则是没用的.2.在php.ini找到session.save_pa ...

  3. C# 驱动的mongodb的分页查询简单示例

    /// <summary> /// mongodb分页查询 /// </summary> /// <typeparam name="T">< ...

  4. POJ-2002 Squares---绕点旋转+Hash

    题目链接: https://vjudge.net/problem/POJ-2002 题目大意: 有一堆平面散点集,任取四个点,求能组成正方形的不同组合方式有多少. 相同的四个点,不同顺序构成的正方形视 ...

  5. Poj(2421),Prim最小生成树

    题目链接:http://poj.org/problem?id=2421 最小生成树的变形,有的村庄已经连接了,就直接把他们的权值赋为0,一样的做最小生成树,Prim算法. #include <s ...

  6. 2月4号学习的一个SSM整合项目,第一课

    本文引自:https://github.com/Sunybyjava/seckill  原作者:sunybyjava@gmail.com seckill 一个整合SSM框架的高并发和商品秒杀项目,学习 ...

  7. Java 截屏工具类

    PrintScreenUtils.java package javax.utils; import java.awt.AWTException; import java.awt.Dimension; ...

  8. device not ready cuda

    问题描述: CUDA: 使用cudaEventElapsedTime时返回device not ready error 强调下我是用谷歌大神搜索到的结构哦! http://stackoverflow. ...

  9. HttpContext.RewritePath

    定义:使用给定路径重写 URL.就是可以跳转到指定的URL. 也可以做为伪静态的跳转.具体如下. 他的重载 ①新建一个页面,放两个链接到另一个页面,注意给的链接 ②在 global.asax 文件中 ...

  10. js点击获取标签里面id属性

    <html xmlns="http://www.w3.org/1999/xhtml"> <head > <title></title> ...