改进作为管理程序来宾而运行的虚拟机中内存使用情况的系统和方法技术方案

技术编号:5393224 阅读:307 留言:0更新日期:2012-04-11 18:40
改进作为管理程序来宾运行的虚拟机中的内存使用情况的系统和方法。根据实施例,本发明专利技术提供了用于响应来自管理程序的请求更改虚拟机的内存使用情况的系统,包括:管理程序;在所述管理程序内执行的来宾操作系统;所述管理程序和所述来宾操作系统之间的通信信道;所述来宾操作系统中的气球驱动程序;用于执行软件应用的虚拟机;所述气球驱动程序和所述虚拟机之间的通信信道;供所述虚拟机用于作为所述软件应用的一部分存储软件对象和指针的内存空间或堆;以及,供所述虚拟机使用的压缩垃圾收集器。

【技术实现步骤摘要】
【国外来华专利技术】
一般而言,本专利技术涉及虚拟机环境及其他运行时环境,具体来说,涉及作为管理程 序内的来宾运行的Java及其他虚拟机环境内的内存使用情况。优先权声明本申请要求2007年9月7日提出的专利申请号为No. 60/970,834,标题为“SYSTEM AND METHOD TO IMPROVE MEMORY USAGEIN VIRTUAL MACHINES RUNNING AS HYPERVISOR GUESTS”的美国临时专利申请;以及2008年9月5日提出的专利申请号为No. 12/205,467, 标题为 “SYSTEM AND METHOD TO IMPR0VEMEM0RY USAGE IN VIRTUAL MACHINES RUNNING ASHYPERVIS0R GUESTS”的美国专利申请的优先权,这些专利申请以引用的方式并入本文 中。
技术介绍
可以使用服务器虚拟化来将单一物理服务器分区为多个虚拟服务器,其中,每一 个虚拟服务器都可以运行其自己的操作系统(OS)和一组应用程序。负责管理虚拟服务器 的软件一般被称为“管理程序”(hypervisor,或称为管理器)。系统管理员可以配置管理程 序以给每一个虚拟服务器其自己的物理资源(如RAM或CPU时间)的份额。以此方式,操 作系统的多个副本以为它们各自都在它们自己的服务器上运行,而实际上它们正在共享一 个物理服务器。在管理程序内运行的操作系统一般被称为该管理程序的来宾(guest)。虚拟化技术的主要用途之一是提高服务器利用率。在服务器上单独运行的服务器 应用程序很少能充分利用服务器。例如,如果各自使用40%的服务器容量的两个应用程序 可以在同一个服务器上运行,那么,只需要一个物理服务器,而不是两个物理服务器,相应 地降低了能源消耗和空间要求。只要所有应用程序都需要相同的操作系统和库,那么聚合同一个服务器上的多个 应用程序久不需要服务器虚拟化。令人遗憾的是,许多旧版服务器应用程序需要不同的操 作系统,或其不同的版本。在这些情况下,在同一个服务器上运行多个这些旧版服务器应用 程序的唯一途径是使用管理程序来执行服务器虚拟化。在某些情况下,管理程序也可以提 供通常在操作系统中不可用的服务,如保证一定量的服务器资源对一个来宾可用,而不对 另一个权限较小的来宾可用。利用多个物理服务器,每个服务器运行一个管理程序,一个服 务器上的管理程序可以将来宾移动到另一个服务器。这可以用来适应应用程序工作负荷的 变化或服务器的必需的升级或修理。当前可用的服务器虚拟化技术的示例包括VMWare和 XenSource0由于空闲的服务器常常与正在工作的服务器使用几乎同样多的能量(这跟例如 笔记本电脑不同,笔记本电脑由于电池因素试图节能),聚合来宾可以提供大量的能量和空 间节省,这会立即转换成较低的成本。因此,许多信息技术或IT部门的一个共同的项目是 数据中心合并。数据中心合并也受必要性的驱动,例如,常常不可能向计算机中心添加更多的能量,或者没有更多的可用的服务器空间。然而,从长远观点来看,将旧的应用程序和操 作系统放到使用管理程序的现代的硬件上可能不是有效的解决方案。需要与底层操作系统 和管理程序进行协作的更加智能的应用程序,以便将来完全利用数据中心资源。与模拟已经存在的硬件设计的虚拟服务器相比,虚拟机是可以为其编译应用程序 软件的抽象计算机。因此,虚拟机是在不同的硬件和操作系统组合之间是一致的应用程序 软件的抽象层。在不同的平台上运行相同应用程序的大部分复杂性由虚拟机进行处理,因 此,虚拟机变为非常复杂的软件。现代的虚拟机需要管理特定处理器的代码生成、比如线程 操作系统从属的资源、联网和文件系统。虚拟机也管理堆(heap),在堆内,进行虚拟机对象 的分配和释放。虚拟机的示例包括Java虚拟机(JVM)以及其不同的实现方式,包括JRockit JVM,以及Hotspot JVM。当今的大部分服务器应用程序都是以Java编写的,并在这样的虚 拟机上执行的。数据中心合并的当前趋势需要虚拟机在作为管理程序来宾运行时表现良 好,并有助于资源节省。
技术实现思路
这里说明了改进作为管理程序来宾运行的虚拟机,或其它垃圾收集的运行时环境 中的内存使用情况的系统和方法。用于管理程序控制来宾操作系统的当前技术大大地影响 了在来宾操作系统内运行的虚拟机的性能。本专利技术的实施例是通过提供改进作为管理程序来宾运行的虚拟机或运行时环境 收集的其他垃圾中的内存使用情况的系统和方法来解决此问题的。根据实施例,提供了用 于响应来自管理程序的请求更改虚拟机的内存使用情况的系统,包括管理程序;在所述 管理程序内运行的来宾操作系统;所述管理程序和所述来宾操作系统之间的通信信道;所 述来宾操作系统中的气球驱动程序;用于执行软件应用的虚拟机;所述气球驱动程序和所 述虚拟机之间的通信信道;供所述虚拟机用于作为所述软件应用的一部分存储软件对象和 指针的内存空间或堆;以及,供所述虚拟机使用的压缩垃圾收集器。根据另一个实施例,所述气球驱动程序可以使用所述气球驱动程序到虚拟机的通 信信道来控制所述虚拟机的堆的大小。根据另一个实施例,所述管理程序可以在所述虚拟机堆之间均勻地或以指定的比 例分割可用的物理RAM。根据另一个实施例,所述管理程序可以为不同的虚拟机设置不同的堆大小,保证 符合服务层次的约束,这些约束对于每一个虚拟机是不同的。根据另一个实施例,所述操作系统可以被专门定制成只运行单一虚拟机,没有交 换也没有其他用户进程。附图说明图1显示了根据实施例的改进了在管理程序内作为来宾运行的虚拟机的内存使 用情况的系统的例图。图2显示了根据实施例的内存布局的示意图,显示了缩小堆大小之前和之后的 Java _ ο图3显示了根据实施例的内存布局的示意图,显示了当两个OS/JVM来宾在管理程序内运行的情况。图4显示了根据实施例的内存布局的示意图,显示了向管理程序内添加了第三 OS/JVM来宾的情况。图5显示了根据实施例的流程图,显示了管理程序RAM的重新分配。 具体实施例方式可以使用服务器虚拟化来将单一物理服务器分区为多个虚拟服务器,其中,每一 个虚拟服务器都可以运行其自己的操作系统(OS)和一组应用程序。负责管理虚拟服务器 的软件一般被称为“管理程序”。系统管理员可以配置管理程序以给每一个虚拟服务器提供 其自己的物理资源,比如RAM或CPU时间的份额。以此方式,操作系统的多个副本以为它们 各自都在它们自己的服务器上运行,而实际上它们正在共享一个物理服务器。在管理程序 内运行的操作系统一般被称为管理程序的来宾。虚拟化技术的主要用途之一是提高服务器利用率。在服务器上单独运行的服务器 应用程序很少能充分利用服务器。例如,如果各自使用40%的服务器容量的两个应用程序 可以在同一个服务器上运行,那么,只需要一个物理服务器,而不是两个物理服务器,相应 地降低了能源消耗和空间要求。只要所有应用程序都需要相同的操作系统和库,那么聚合同一个服务器上的多个 应用程序久不需要服务器虚拟化。令人遗憾的是,许多旧版服务器应用程序需要不同的操 作系统,或其不同的版本。在这些情况下,在同一个服务器上运行多个这些旧版服务器应用 程序的唯一途径是使用管理程序来执行服本文档来自技高网
...

【技术保护点】
一种改进作为管理程序来宾运行的虚拟机中的内存使用情况的系统,包括:计算机硬件或机器;在所述计算机硬件或机器上运行的管理程序;作为所述管理程序内的来宾来运行的一个或多个来宾操作系统,其中,所述一个或多个来宾操作系统中的每一个都具有与其关联的:气球驱动程序,用于执行软件应用的虚拟机,供所述虚拟机用于作为所述软件应用的一部分存储软件对象和指针的内存空间或堆,以及供所述虚拟机用于对所述内存空间或堆内的软件对象进行垃圾收集的垃圾收集器;以及其中,所述系统接收有关所述虚拟机对所述内存空间或堆的使用情况的信息,并使用所述气球驱动程序来控制所述压缩垃圾收集器的使用,并且管理对于供作为所述管理程序内的来宾运行的所述一个或多个来宾操作系统使用来说所必需的内存空间或堆的大小。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:J达尔斯泰特
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1