CN102257479A - 用于优化运行至少一个进程的虚拟机的配置的系统和方法 - Google Patents
用于优化运行至少一个进程的虚拟机的配置的系统和方法 Download PDFInfo
- Publication number
- CN102257479A CN102257479A CN2009801514495A CN200980151449A CN102257479A CN 102257479 A CN102257479 A CN 102257479A CN 2009801514495 A CN2009801514495 A CN 2009801514495A CN 200980151449 A CN200980151449 A CN 200980151449A CN 102257479 A CN102257479 A CN 102257479A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- virtual
- supervisory routine
- calculation element
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 230000008569 process Effects 0.000 title claims abstract description 90
- 230000004044 response Effects 0.000 claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims description 137
- 230000008859 change Effects 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 35
- 230000006870 function Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 11
- 244000078534 Vaccinium myrtillus Species 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000005055 memory storage Effects 0.000 description 5
- 235000003095 Vaccinium corymbosum Nutrition 0.000 description 4
- 235000017537 Vaccinium myrtillus Nutrition 0.000 description 4
- 235000021014 blueberries Nutrition 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241000501754 Astronotus ocellatus Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 1
- 241000721662 Juniperus Species 0.000 description 1
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 235000013599 spices Nutrition 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于优化运行至少一个进程的虚拟机的配置的系统,其包括在计算装置上执行的虚拟机中至少一个虚拟资源,在虚拟机内执行的代理和管理程序。所述至少一个虚拟资源具有配置参数。所述代理识别当前在虚拟机上执行的至少一个进程的名称。管理程序响应于从所述代理接收所识别的名称来改变配置参数的值。
Description
相关申请
本申请要求2008年12月1日提交的序列号为12/325,713的美国专利申请的优先权,将其公开内容视为本申请公开的一部分并且通过引用将其整体包含于此。
技术领域
本发明总的涉及用于优化虚拟机的系统和方法。具体而言,本发明涉及用于优化运行至少一个进程的虚拟机的配置的系统和方法。
背景技术
在执行管理程序以便在宿主计算装置上执行虚拟机的传统计算环境中,管理程序通常向虚拟机提供对宿主计算装置所提供的硬件资源的访问。传统环境中,一旦管理程序已分配资源,这个进程就不会重新评估虚拟机的需求。例如,典型的管理程序通过给每个机器指派一个处理器来将多个可利用的物理处理器分配给多个虚拟机,而不考虑任何具体虚拟机的需求或任何具体物理处理器的可利用的功能。在这样的环境中,假设第一虚拟机开始执行要求物理处理器的额外功能的进程或者在所分配的物理处理器上施加了过多的负载的进程,传统的系统通常不包括用于评估第一虚拟机的需求并给第一虚拟机分配额外的物理处理器的功能。由于管理程序可能已将另外的物理处理器分配给其他虚拟机,而这些其他虚拟机可能不会充分地利用分配给它们的物理处理器,这些传统系统可能由计算装置上的一个或多个虚拟机造成分配低效以及性能低下。
发明内容
在一个方面,用于优化运行至少一个进程的虚拟机的配置的方法包括由在计算装置上执行的管理程序指定在计算装置上执行的虚拟机中至少一个虚拟资源的配置参数。该方法包括由在虚拟机上执行的代理识别当前在虚拟机上执行的至少一个进程的名称。该方法包括响应于所述名称的识别来改变所指定的配置参数的值。在一个实施例中,该方法包括由代理将所识别的名称传输给管理程序。在又一个实施例中,该方法包括由管理程序改变所指定的配置参数的值。仍在又一个实施例中,该方法包括由管理程序改变第二虚拟机中至少一个虚拟资源的配置参数的值。又一个实施例中,该方法包括由管理程序响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置所提供的至少一个物理资源的访问。
在又一个方面,用于优化运行至少一个进程的虚拟机的配置的系统包括在计算装置上执行的虚拟机中的至少一个虚拟资源,在虚拟机内部执行的代理以及管理程序。所述至少一个虚拟资源具有配置参数。代理识别当前在虚拟机上执行的至少一个进程的名称。管理程序响应于从所述代理接收所识别的名称来改变配置参数的值。
在一个实施例中,所述至少一个虚拟资源是虚拟处理器。在又一个实施例中,所述至少一个虚拟资源是虚拟存储器。仍在又一个实施例中,代理将所识别的名称传输给管理程序。在又一个实施例中,管理程序改变第二虚拟机中虚拟资源的配置参数的值。在一些实施例中,管理程序执行虚拟机。在其他实施例中,管理程序响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置所提供的至少一个物理资源的访问。
在一个实施例中,管理程序改变指定分配给虚拟机的物理处理器时间的值。在又一个实施例中,管理程序改变指定分配给与虚拟机关联的页表的随机存取存储器(RAM)的数量的值。仍在又一个实施例中,管理程序改变指定分配给虚拟机的物理随机存取存储器(RAM)的数量的值。
附图说明
本发明的前述和其它目的、方面、特征和优点通过参考下述结合附图的描述将会更加明显并更易于理解,其中:
图1A是描述包括管理程序层、虚拟化层和硬件层的计算环境的实施例的框图;
图1B和1C是描述用于与此处所描述的方法和系统有关的计算装置的实施例的框图;
图2A是描述用于优化运行至少一个进程的虚拟机的配置的系统的实施例的框图;
图2B是描述用于优化多个虚拟机的配置的系统的实施例的框图;以及
图3是描述用于优化运行至少一个进程的虚拟机的配置的方法的实施例的流程图。
具体实施方式
现参考图1A,框图描述了虚拟化环境的一个实施例。简而言之,计算装置100包括管理程序层、虚拟化层和硬件层。管理程序层包括管理程序101(也称为虚拟化管理器),其通过在虚拟化层中执行的至少一个操作系统来分配和管理对硬件层中的多个物理资源的访问(例如处理器221和磁盘228)。虚拟化层包括至少一个操作系统和分配给至少一个操作系统的多个虚拟资源。虚拟资源可包括而不限于多个虚拟处理器132a、132b、132c(总称为132),和/或虚拟盘142a、142b、142c(总称为142)。可将多个虚拟资源和操作系统110称为虚拟机106。虚拟机106可包括控制操作系统105,该控制操作系统105与管理程序101通信,并用于执行应用以管理并配置计算装置100上的其他虚拟机。
现参考图1A,具体而言,管理程序101可以以模拟可访问物理设备的操作系统的任何方式向操作系统提供虚拟资源。管理程序101可以向任一数量的客户操作系统110a、110b(总称为110)提供虚拟资源。一些实施例中,计算装置100执行一种或多种管理程序,而不是操作系统。这些实施例中,管理程序可用于模拟虚拟硬件、划分物理硬件、虚拟化物理硬件并执行提供对计算环境的访问的虚拟机。管理程序可包括由Palo Alto,California的VMWare制造的这些程序、XEN管理程序(一种开源产品,其开发由开源Xen.org协会监管)、由微软公司提供的HyperV、VirtualServer或虚拟PC管理程序,或其他。一些实施例中,计算装置100执行创建客户操作系统可在其上执行的虚拟机平台的管理程序,该计算装置100被称为宿主服务器。在一个这样的实施例中,例如,计算装置100是由位于Fort Lauderdale FL的Citrix Systems公司提供的XEN SERVER。
一些实施例中,管理程序101在计算装置上执行的操作系统之内执行。一个这样的实施例中,执行操作系统和管理程序101的计算装置可被视为具有宿主操作系统(在计算装置上执行的操作系统)和客户操作系统(在由管理程序101提供的计算资源分区内执行的操作系统)。其他实施例中,管理程序101和计算装置上的硬件直接交互而不是在宿主操作系统上执行。一个这样的实施例中,管理程序101可被视为是在“裸机(bare metal)”上执行,所述“裸机”指包括计算装置的硬件。
一些实施例中,管理程序101可以创建操作系统在其中执行的虚拟机106a-c(总称为106)。在一个这样的实施例中,管理程序101加载虚拟机映像以创建虚拟机。另一个这样的实施例中,管理程序101在虚拟机内执行操作系统。仍在另一个这样的实施例中,虚拟机执行操作系统。
一些实施例中,管理程序101控制在计算装置100上执行的虚拟机106的处理器调度和内存划分。一个这样的实施例中,管理程序101控制至少一个虚拟机106的执行。另一个这样的实施例中,管理程序101向至少一个虚拟机106呈现由计算装置100提供的至少一个硬件资源的抽象。其他实施例中,管理程序101控制是否以及如何把物理处理器能力呈现给虚拟机106。
控制操作系统105可以执行用于管理和配置客户操作系统的至少一个应用。一个实施例中,控制操作系统105可以执行管理应用,如包括如下用户接口的应用,该用户接口为管理员提供对用于管理虚拟机执行的功能的访问,这些功能包括用于执行虚拟机、中止虚拟机执行或者识别要分配给虚拟机的物理资源类型的功能。另一个实施例中,管理程序101在由管理程序101创建的虚拟机106内执行控制操作系统105。仍在另一个实施例中,控制操作系统105在被授权直接访问计算装置100上的物理资源的虚拟机106上执行。
一个实施例中,控制操作系统105在被授权与至少一个客户操作系统110交互的虚拟机106上执行。另一个实施例中,客户操作系统110通过管理程序101与控制操作系统105通信,以请求访问磁盘或网络。仍在另一个实施例中,客户操作系统110和控制操作系统105可通过由管理程序101建立的通信信道通信,例如,通过由管理程序101提供的多个共享存储器页面通信。
一些实施例中,控制操作系统105包括用于直接与由计算装置100提供的网络硬件通信的网络后端驱动器。一个这样的实施例中,网络后端驱动器处理来自至少一个客户操作系统110的至少一个虚拟机请求。其他实施例中,控制操作系统105包括用于与计算装置100上的存储单元通信的块后端驱动器。一个这样的实施例中,块后端驱动器根据从客户操作系统110接收的至少一个请求从存储单元读写数据。
一个实施例,控制操作系统105包括工具堆栈104。其他实施例中,工具堆栈104提供如下功能:和管理程序101交互、和其他控制操作系统105(例如位于第二计算装置100b上)通信,或者管理计算装置100上的虚拟机106b、106c。另一个实施例中,工具堆栈104包括自定义应用,其用于向虚拟机群的管理员提供改进的管理功能。一些实施例中,工具堆栈104和控制操作系统105中的至少一个包括管理API,其提供用于远程配置并控制计算装置100上运行的虚拟机106的接口。其他实施例中,控制操作系统105通过工具堆栈104和管理程序101通信。
一个实施例中,管理程序101在由管理程序101创建的虚拟机106内执行客户操作系统110。另一个实施例中,客户操作系统110为计算装置100的用户提供对计算环境中的资源的访问。另一个实施例中,资源包括程序、应用、文档、文件、多个应用、多个文件、可执行程序文件、桌面环境、计算环境或对计算装置100的用户可用的其他资源。另一个实施例中,可通过多个访问方法将资源传送给计算装置100,这些方法包括但不限于:常规的直接安装在计算装置100上、通过应用流的方法传送给计算装置100、将由在第二计算装置100′上执行资源产生的并通过表示层协议传送给计算装置100的输出数据传送给计算装置100、将由在第二计算装置100′上执行的虚拟机执行资源所产生的输出数据传送给计算装置100、或者从连接到计算装置100的移动存储装置(例如USB设备)执行或者通过在计算装置100上执行的虚拟机执行并且产生输出数据。一些实施例中,计算装置100把执行资源所产生的输出数据传输给另一个计算装置100′。
一个实施例中,客户操作系统110和该客户操作系统110在其上执行的虚拟机结合形成完全虚拟化虚拟机,该完全虚拟化虚拟机并不知道自己是虚拟机,这样的机器可称为“Domain U HVM(硬件虚拟机)虚拟机”。另一个实施例中,完全虚拟化机包括模拟基本输入/输出系统(BIOS)的软件以便在完全虚拟化机中执行操作系统。仍在另一个实施例中,完全虚拟化机可包括驱动器,其通过和管理程序101通信提供功能。这样的实施例中,驱动器通常意识到自己在虚拟化环境中执行。
另一个实施例中,客户操作系统110和该客户操作系统110在其上执行的虚拟机结合形成超虚拟化虚拟机(paravirtualized),该超虚拟化虚拟机意识到自己是虚拟机,这样的机器可称为“Doma in U PV虚拟机”。另一个实施例中,超虚拟化机包括完全虚拟化机不包括的额外驱动器。另一个实施例中,超虚拟化机包括如上所述的被包含在控制操作系统105中的网络后端驱动器和块后端驱动器。
计算装置100可以被部署为任意类型和形式的计算装置和/或在其上执行,例如能够与任意类型和形式的网络通信并且执行此处所描述的操作的计算机、网络装置或设备。图1B和1C描述了用于实施此处所描述的方法和系统的实施例的计算装置100的框图。如图1B和1C所示,计算装置100包括中央处理单元121和主存储器单元122。如图1B所示,计算装置100可包括存储装置128、安装装置116、网络接口118、I/O控制器123、显示装置124a-124n、键盘126和诸如鼠标的指示装置127。存储装置128可包括但不限于操作系统、软件和客户机代理120。如图1C所示,每个计算装置100也可包括其它可选的部件,例如存储器端口103、桥170、一个或多个输入/输出设备130a-130n(总的使用标号130表示),以及与中央处理单元121通信的高速缓存存储器140。
中央处理单元121是响应并处理从主存储器单元122取出的指令的任意逻辑电路。在许多实施例中,中央处理单元121由微处理器单元提供,例如:由California,Mountain View的Intel公司制造的微处理器单元;由IIIinois,Schaumburg的Motorola公司制造的微处理器单元;由Califirnia,Santa Clara的Transmeta公司制造的微处理器单元;由NewYork,White Plains的International Business Machines公司制造的RS/6000处理器;或者由California,Sunnyvale的Advanced Micro Devices公司制造的微处理器单元。计算装置100可以基于这些处理器中的任意一种,或者能够按照这里所说明的那样运行的任意其它处理器。
主存储器单元122可以是能够存储数据并允许微处理器121直接访问任意存储位置的一个或多个存储器芯片,例如静态随机存取存储器(SRAM)、突发(Burst)SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器DRAM、快速页模式DRAM(FPM DRAM)、增强DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发扩展数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100 SDRAM、双倍数据传输率SDRAM(DDR SDRAM)、增强SRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus DRAM(DRDRAM)或铁电RAM(FRAM)。主存储器122可以基于上述存储器芯片的任意一种,或者能够像这里所说明的那样运行的任意其它可用存储器芯片。在图1B中所示的实施例中处理器121通过系统总线150(在下面进行更详细的描述)与主存储器122进行通信。图1C描述了在其中处理器通过存储器端口103直接与主存储器122通信的计算装置100的实施例。例如,在图1C中主存储器122可以是DRDRAM。
图1C描述在其中主处理器121通过有时被称为背侧总线的次级总线直接与高速缓存存储器140通信的实施例。其他实施例中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图1C中所示的实施例中,处理器121通过本地系统总线150与多个I/O装置130进行通信。可以使用各种不同的总线将中央处理单元121连接到任意I/O装置130,包括VESA VL总线、ISA总线、EISA总线、微通道体系结构(MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于I/O装置是视频显示器124的实施例,处理器121可以使用高级图形端口(AGP)与显示装置124通信。图1C描述了在其中主处理器121通过HYPERTRANSPORT,RAPIDIO,或INFINIBAND通信技术直接与I/O装置130b通信的计算机100的实施例。图1C也描述了在其中本地总线和直接通信相混合的实施例:处理器121使用本地互连总线与I/O装置130a通信同时直接与I/O装置130b通信。
各式各样的I/O装置130a-130n可以存在于计算装置100中。输入设备包括键盘、鼠标、触控板、轨迹球、话筒、拨号盘和绘图板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机和热升华打印机。如图1B所示,I/O装置可以由I/O控制器123控制。I/O控制器可以控制一个或多个I/O装置,例如键盘126和指示装置127(如鼠标或光笔)。此外,I/O装置还可以为计算装置100提供存储和/或安装介质116。仍在其它实施例中,计算装置100可以提供USB连接(未示出)以接收手持USB存储装置,例如由位于California,Los Alamitos的Twintech Industry公司生产的设备的USB闪存驱动线。
再次参考图1B,计算装置100可以支持任意适当的安装装置116,例如用于接收像3.5英寸、5.25英寸磁盘或ZIP磁盘这样的软盘的软盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、闪存驱动器、多种格式的磁带驱动器、USB设备、硬盘驱动器或适于安装软件和程序的任意其它设备。计算装置100还可以包括存储装置,诸如一个或者多个硬盘驱动器或者独立磁盘冗余阵列,用于存储操作系统和其它相关软件,以及用于存储诸如涉及客户机代理120的任意程序的应用软件程序。或者,可以使用安装装置116的任意一种作为存储装置。此外,操作系统和软件可从可引导介质运行,可引导介质例如是可引导CD,诸如KNOPPIX,其为一种用于GNU/Linux的可引导CD,可自knoppix.net作为GNU/Linux分发获得。
此外,计算装置100可以包括网络接口118以通过多种连接来与网络104对接,所述连接包括但不限于标准电话线路、LAN或WAN链路(例如802.11,T1,T3、56kb、X.25、SNA、DECNET)、宽带连接(如ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET))、无线连接、或上述任意或全部的某种组合。使用多种通信协议(例如TCP/IP、IPX、SPX、NetBIOS、Ethernet、ARCNET、SONET、SDH、光纤分布数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE802.11a IEEE802.11b、IEEE802.11g、CDMA、GSM、WiMax和直接异步连接)可建立连接。在一个实施例中,计算装置100可以通过任意类型和/或形式的网关或诸如安全套接字层(SSL)或传输层安全(TLS)协议,或由位于Flordia,FT.Lauderdale的Citrix Systems公司制造的Citrix网关协议的隧道协议来与其他计算装置100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适用于将计算装置100对接到能够通信并执行这里所说明的操作的任意类型的网络的任意其它设备。
在一些实施例中,计算装置100可以包括多个显示装置124a-124n或与其相连,这些显示装置各自可以是相同或不同的类型和/或形式。因而,任意一种I/O装置130a-130n和/或I/O控制器123可以包括任一类型和/或形式的适当的硬件、软件或硬件和软件的组合,以支持、允许或提供通过计算装置100连接和使用多个显示装置124a-124n。例如,计算装置100可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示装置124a-124n对接、通信、连接或以其他方式使用显示装置124a-124n。在一个实施例中,视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置100的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其它实施例中,显示装置124a-124n中的一个或多个可以由一个或多个其它计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置100a和100b。这些实施例可以包括被设计和构造的任一类型的软件,以使用另一个计算机的显示装置作为计算装置100的第二显示装置124a。本领域的普通技术人员会认识和意识到可以将计算装置100配置成拥有多个显示装置124a-124n的各种方式和实施例。
在进一步的实施例中,I/O装置130可以是系统总线150和外部通信总线之间的桥,所述外部通信总线如USB总线、Apple桌面总线、RS-232串行连接、SCSI总线、FireWire总线、FireWire800总线、以太网总线、AppleTalk总线、千兆位以太网总线、异步传输模式总线、HIPPI总线、超级HIPPI总线、SerialPlus总线、SCI/LAMP总线、光纤信道总线、串行SCSI总线或HDMI总线。
图1B和1C中所描述类型的计算装置100通常地在操作系统的控制下运行,操作系统控制任务的调度和对系统资源的访问。计算装置100可运行任一操作系统,诸如任一版本的MICROSOFT WINDOWS的操作系统;不同发行版本的Unix和Linux操作系统;用于Macintosh计算机的MACOS的任意版本;任意嵌入式操作系统;任意实时操作系统;任意开源操作系统;任意专有操作系统;任意用于移动计算装置的操作系统,或者能够在计算装置上运行且执行此处所描述的操作的任意其它操作系统。典型的操作系统包括,但不限于:WINDOWS 3.x、WINDOWS 95、WINDOWS 98、WINDOWS 2000、WINDOWS NT 3.51、WINDOWS NT 4.0、WINDOWS CE、WINDOWS MOBILE、WINDOWS XP和WINDOWS VISTA,所有这些均由位于Washington,Redmond的微软公司出品;由位于California,Cupertino的苹果计算机出品的Mac OS;由位于New York,Armonk的国际商业机器公司出品的OS/2;以及由位于Utah,Salt Lake City的Caldera公司发布的可免费使用的Linux操作系统或者任意类型和/或形式的Unix操作系统,以及其它。
计算机系统100可以是任意工作站、电话、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话或其他便携电信通信设备、媒体播放设备、游戏系统、移动计算装置,或能够通信的任意其它类型和/或形式的计算、电信或者媒体装置。计算机系统100有足够的处理器能力和存储容量以执行此处所述的操作。例如,计算机系统100可包括由位于California,Cupertino的苹果计算机公司出品的IPOD系列设备、由位于日本东京的索尼公司出品的PLAYSTATION2、PLAYSTATION3或PERSONALPLAYSTATION PORTABLE(PSP)设备,由位于日本Kyoto的Nintendo有限公司出品的NINTENDO DS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED或NINTENDO REVOLUTION设备,或者由位于Washington,Redmond的微软公司出品的XBOX或XBOX 360设备。
在一些实施例中,计算装置100可以有不同的处理器、操作系统以及与该装置一致的输入设备。例如,在一个实施例中,计算装置100是由Palm公司出品的Treo180、270、600、650、680、700p、700w或750智能电话。在这些实施例的一些中,TERO智能电话是在PalmOS操作系统的控制下操作并且包括笔输入设备以及五向导航设备。
在其他实施例中,计算装置100是移动设备,例如,JAVA使能蜂窝电话(JAVA enabled cellular telephone)或个人数字助理(PDA),诸如i55sr,i58sr,i85s,i88s,i90c,i95c1或im1100,以上这些均由位于Illinois,Schaumburg的摩托罗拉公司制造;由位于日本Kyoto的Kyocera公司制造的6035或7135;或者由位于韩国首尔的Samsung电子有限公司制造的i300或i330。在一些实施例中,计算装置100是由位于芬兰的诺基亚公司制造或由位于瑞典Lund的Sony Ericsson Mobile Communications AB公司制造的移动设备。
仍在其他实施例中,计算装置100是黑莓(Blackberry)手持或智能电话,诸如由Research In Motion有限公司制造的设备,包括黑莓7100系列、8700系列、7700系列、7200系列、黑莓7520或黑莓PERAL 8100。仍在其他实施例中,计算装置100是智能电话、PocketPC、PocketPC电话,或支持Microsft Windows Mobile Software的其它手持移动设备。此外,计算装置100可以是任意工作站、桌面计算机、膝上型或笔记本计算机、服务器、手持计算机、移动电话、任意其它计算机、或能够通信并有足够的处理器能力和存储容量以执行此处所述的操作的其它形式的计算或者电信设备。
在一些实施例中,计算装置100是数字音频播放器。在这些实施例的一个中,计算装置100是诸如由位于California Cupertino的苹果计算机公司制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE系列设备的数字音频播放器。在这些实施例的又一个中,数字音频播放器可作为便携媒体播放器和作为大容量存储装置来工作。在其他实施例中,计算装置100是诸如由位于NJ,Ridgefield Park的Samsung Electronics America公司制造的DigitalAudioPlayer SelectMP3播放器,或由位于IL.Schaumburg的Motorola公司制造的Motorola m500或m25 Digital Audio Players的数字音频播放器。仍在其他实施例中,计算装置100是便携媒体播放器,诸如由Creative Technologies有限公司制造的ZEN VISION W、ZEN VISION系列、ZEN PORTABLE MEDIA CENTER设备或MP3播放器的Digital MP3系列。仍在其他实施例中,计算装置100是支持以下文件格式的便携媒体播放器或数字音频播放器,这些文件格式包括,但不限于MP3、WAV、M4A/AAC、WMAProtected AAC、AIFF、Audible音频书、Apple Lossless音频文件格式和.mov、.m4v以及.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施例中,计算装置100包括设备的组合,例如与数字音频播放器或便携媒体播放器相组合的移动电话。在这些实施例的一个中,计算装置100是智能电话,例如由苹果计算机公司制造的iPhone,或由Research InMotion有限公司制造的黑莓设备。又一个实施例中,计算装置100是装有web浏览器和麦克风与扬声器的系统(如电话耳机)的笔记本电脑或桌面计算机。在这样的实施例中,计算装置100是web使能的(web-enabled)的并且能接听和启动电话呼叫。在其他实施例中,计算装置100是组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR系列。
计算装置100可以是文件服务器、应用服务器、web服务器、代理服务器、设备、网络设备、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器或防火墙。在一些实施例中,计算装置100提供远程认证拨入用户服务,并被称为RADIUS服务器。在其他实施例中,计算装置100可以有作为应用服务器或者作为主应用服务器工作的能力。仍在其他实施例中,计算装置100是刀片服务器。
在一个实施例中,计算装置100可包括活动目录。计算装置100可以是应用加速设备。对于其中计算装置100是应用加速设备的实施例,计算装置100可提供包括防火墙功能、应用防火墙功能,或负载平衡功能的功能。在一些实施例中,计算装置100包括诸如由位于CA,San Jose的Citrix应用网络组、位于CA,Mountain View,的Silver Peak Systems公司、位于CA,San Francisco的Riverbed Technology公司、位于WA,Seattle的F5Networks公司或位于CA,Sunnyvale的Juniper Networks公司制造的设备线中的一个设备。
在其他实施例中,计算装置100可被称为客户机节点、客户机器、端节点或端点。在一些实施例中,客户机100具有作为客户机节点寻求访问服务器所提供的资源的能力以及作为服务器节点为其它客户机提供对所寄载的资源访问的能力。
在一些实施例中,第一客户机计算装置100a与第二服务器计算装置100b通信。在一个实施例中,客户机与群38中的计算装置100之一进行通信。例如,通过网络,客户机可以请求执行群38中的计算装置100所寄载的各种应用以及接收应用执行的结果的输出数据以用于显示。在一个实施例中,客户机执行程序邻近应用(program neighborhood application)以与群38中的计算装置100通信。
计算装置100可以执行、操作或者以其它方式提供应用,该应用可以是任何类型和/或形式的软件、程序或可执行指令,诸如任何类型和/或形式的web浏览器、基于web的客户机、客户机-服务器应用、瘦客户端计算客户机、ActiveX控件、或Java小程序,或者能够在计算装置100上执行的任何其他类型和/或形式的可执行指令。在一些实施例中,应用可以是由第二计算装置代表第一计算装置的用户执行的基于服务器的或者基于远程的应用。在其他实施例中,第二计算装置可使用任何瘦客户端或远程显示协议向第一计算装置显示输出的数据,所述协议如:由位于Ft.Lauderdale Florida的Citrix Systems公司制造的独立计算架构(ICA)协议;或由位于Washington,Redmond的Microsoft公司制造的远程桌面协议(RDP);X11协议;由AT&T贝尔实验室制造的虚拟网络计算(VNC)协议;由位于USA,CA,Sunnyvale和Israel,Raanana的Qumranet公司制造的SPICE协议;由位于CA,Milpitas的VESA公司制造的Net2Display协议;由位于B.C.Burnaby的Teradici公司制造的PC-over-IP协议;由位于CA,San Jose的Wyse Technology公司制造的TCX协议;由位于NY,NewYork的纽约哥伦比亚大学开发的THINC协议;或者由位于MA,Chelmsford的Desktone公司制造的Virtual-D协议。应用可以使用任何类型的协议,并且其可以是,例如,HTTP客户机、FTP客户机、Oscar客户机或Telnet客户机。在其他实施例中,应用包括与诸如软IP电话的网络电话(VoIP)通信有关的任意类型的软件。在进一步的实施例中,应用包括与实时数据通信有关的任何应用例如用于流式传输视频和/或音频的应用。
一些实施例中,第一计算装置100a代表客户机计算装置100b的用户执行应用。其他实施例中,计算装置100a执行虚拟机,其提供执行会话,在该会话中,代表用户或客户机计算装置100b执行应用。一个这样的实施例中,执行会话是寄载的桌面会话。另一个这样的实施例中,计算装置100执行终端服务会话。终端服务会话可以提供寄载的桌面环境。仍在另一个这样的实施例中,执行会话提供对计算环境的访问,计算环境可包括以下的一个或多个:应用、多个应用、桌面应用以及在其中可执行一个或多个应用的桌面会话。
现参考图2A,框图描述用于优化运行至少一个进程的虚拟机的配置的系统的一个实施例的框图。概括而言,该系统包括计算装置100、虚拟机250、管理程序101和进程识别代理210。计算装置100包括至少一个物理硬件资源,例如,物理处理器221。管理程序101在计算装置100上执行。虚拟机250在计算装置100上执行并且包括至少一个客户操作系统110和至少一个虚拟资源212。所述至少一个虚拟资源212具有配置参数。在虚拟机250内执行的进程识别代理210识别当前在虚拟机上执行的至少一个进程214的名称。管理程序101响应于从进程识别代理210接收所识别的名称来改变配置参数的至少一个值。
现参考图2A,更具体地,虚拟机250包括至少一个虚拟资源212。在一个实施例中,至少一个虚拟资源212是如与图1A有关的上文所描述的虚拟处理器132。在又一个实施例中,至少一个虚拟资源212是如与图1A有关的上文所描述的虚拟盘142。仍在又一个实施例中,虚拟资源是虚拟网络装置。在又一个实施例中,虚拟资源是虚拟存储器。仍在又一个实施例中,管理程序101创建至少一个虚拟资源212。在又一个实施例中,管理程序加载虚拟机映像以执行虚拟机250,同时该虚拟机映像定义至少一个虚拟资源,管理程序101实例化所述虚拟资源。
至少一个虚拟资源212具有配置参数。在一个实施例中,例如,配置参数识别虚拟资源212所访问的物理资源而且该配置参数的值指定已给虚拟资源212分配多少对物理资源的访问。
在虚拟机250内执行的进程识别代理210识别当前在虚拟机250上执行的至少一个进程的名称。又一个实施例中,进程识别代理210在计算装置100的虚拟化层中执行。仍在又一个实施例中,进程识别代理210在计算装置100的管理程序层中执行。在一些实施例中,进程识别代理210包括收发器。在这些实施例的一个中,进程识别代理210中的收发器将所识别的名称传输给管理程序101。其他实施例中,进程识别代理210包括用于查询客户操作系统110以识别当前在虚拟机250上执行的至少一个进程的功能。在这些实施例的一个中,例如,进程识别代理210访问应用编程接口以查询客户操作系统110的壳组件。
在一个实施例中,进程识别代理210是客户操作系统110内的组件。又一个实施例中,在客户操作系统110的初始执行时的安装或者初始化进程期间,用户将进程识别代理210安装到客户操作系统110中;例如,当用户初始执行客户操作系统110时,用户可接收到安装包括进程识别代理210的多个管理工具的选项。仍在又一个实施例中,进程识别代理210称为“客户代理”。
管理程序101响应于从进程识别代理210接收所识别的名称来改变配置参数的值。一个实施例中,管理程序101通过与进程识别代理210和管理程序101通信的控制操作系统105直接接收所识别的名称。在又一个实施例中,所改变的值指定分配给虚拟机的物理处理器时间的值。仍在又一个实施例中,所改变的值指定分配给与虚拟机关联的页表的随机存取存储器(RAM)的数量的值。又一个实施例中,所改变的值指定分配给虚拟机的物理随机存取存储器(RAM)的数量的值。在一些实施例中,管理程序响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置100所提供的至少一个物理资源的访问。其他实施例中,管理程序101响应于从进程识别代理210和控制操作系统105的至少一个接收做出更改的指令来改变配置参数的值。
现参考图2B,框图描述用于优化多个虚拟机的配置的系统的一个实施例。简言之,该系统包括计算装置100、第一虚拟机250、第二虚拟机260、管理程序101和进程识别代理210。正如图2B所描述的,在第一虚拟机250上执行的进程识别代理210与控制操作系统105通信,所述控制操作系统105与管理程序101通信。进程识别代理210识别当前在虚拟机250上执行的至少一个进程的名称。进程识别代理210包括收发器,所述收发器向控制操作系统105传输所识别的名称。控制操作系统105识别对第二虚拟机260中至少一个虚拟资源的配置参数的值将要做出的改变。控制操作系统105包括发送器,所述发送器向管理程序101发送改变第二虚拟机260中至少一个资源的所识别的值的指令。一个实施例中,管理程序响应于从进程识别代理210和控制操作系统105的至少一个接收变更值的指令来改变第二虚拟机中至少一个虚拟资源的配置参数的值。又一个实施例中,管理程序响应于从进程识别代理210和控制操作系统105的至少一个接收所识别的名称来改变第二虚拟机中至少一个虚拟资源的配置参数的值。
现参考图3,流程图描述用于优化运行至少一个进程的虚拟机的配置的方法的一个实施例。概括来讲,该方法包括由在计算装置上执行的管理程序指定在计算装置上执行的虚拟机中至少一个虚拟资源的配置参数(302)。该方法包括由在虚拟机内执行的代理识别当前在虚拟机上执行的至少一个进程的名称(304)。该方法包括响应于所述名称的识别来改变所指定的配置参数的值(306)。在一些实施例中,提供在其上具有指令的计算机可读介质,当执行指令时,提供对运行至少一个进程的虚拟机的配置的优化。
现参考图3,更具体地,管理程序指定在计算装置上执行的虚拟机中至少一个虚拟资源的配置参数(302)。在一个实施例中,管理程序101指定至少一个虚拟资源212的配置参数的值。一些实施例中,管理程序101在虚拟机初始化进程中指定虚拟机250中至少一个虚拟资源212的配置参数。在这些实施例的一个中,例如,管理程序101可通过创建虚拟机映像的实例来产生虚拟机250,所述虚拟机映像识别将要被包括在虚拟机250中的至少一个虚拟资源212并且指定所述至少一个虚拟资源212的配置参数。在这些实施例的又一个中,管理程序101可访问配置说明以确定配置参数的值。其他实施例中,管理程序101访问配置映射,所述配置映射将至少一个资源的标识与所述至少一个资源的配置参数的值相关联。在这些实施例的一个中,例如,管理程序101可访问配置映射,所述配置映射指示虚拟机应包括虚拟处理器132,所述虚拟处理器132可访问物理处理器221的一定量的时间(配置参数),并且指定所述物理处理器221的时间量(配置参数的值)。进一步的实施例中,管理程序101响应于所指定的配置参数的值来分配至少一个虚拟资源212对计算装置100所提供的至少一个物理资源的访问。
在虚拟机上执行的代理识别当前在虚拟机上执行的至少一个进程的名称(304)。在一个实施例中,代理将所识别的名称传输到控制操作系统105。进程识别代理210识别当前在虚拟机250上执行的至少一个进程的名称。在这些实施例的一个中,进程识别代理210查询客户操作系统110的壳组件以确定在虚拟机250内的客户操作系统上执行的进程214的名称。在这些实施例的又一个中,进程识别代理210将所识别的进程名称传输到控制操作系统105。仍在这些实施例的又一个中,进程识别代理210将所识别的进程名称传输到工具堆栈104。在其他实施例中,进程识别代理210访问客户操作系统110所提供的应用编程接口以便检索在虚拟机250上执行的进程的列举。在进一步的实施例中,进程识别代理210将所识别的名称传输给管理程序101。
在一些实施例中,进程识别代理210通过管理程序101所建立的共享内存页通信信道来与控制操作系统105通信。在其他实施例中,进程识别代理210通过计算装置100上的网络堆栈来与控制操作系统105通信。仍在其他实施例中,进程识别代理210通过对计算装置100上所存储的共享环形缓冲区或其他数据结构的修改来与控制操作系统105通信。
在一个实施例中,根据所识别的当前在虚拟机上执行的至少一个进程的名称,控制操作系统105确定所指定的配置参数的值应改变。又一个实施例中,例如,控制操作系统105确定进程识别代理210已识别虚拟机250已开始执行的计算密集(computationally-intense)的进程214的名称并且确定虚拟机250的虚拟处理器132当前被分配的对物理处理器221的访问不足以执行该进程214;控制操作系统105确定应该改变所指定的配置参数的值(例如,分配给该虚拟处理器的物理处理器的时间数量)。仍在又一个实施例中,控制操作系统105通过增大所指定的配置参数的值,可改善虚拟机250中进程214的性能。又一个实施例中,控制操作系统105向管理程序101传输改变所指定的配置参数的值的指令。
一个实施例中,控制操作系统105访问配置文件以确定是否指示管理程序响应于所识别的进程214的名称来改变所指定的配置参数的值。又一个实施例中,控制操作系统105访问至少一个进程和至少一个指定的配置参数的值之间的映射。仍在又一个实施例中,例如,所述映射可以为虚拟机的虚拟资源的多个配置参数的每一个识别多个已知进程和推荐值;所述推荐值可被指定来优化虚拟机的具体特性,例如,移动性、性能或可靠性。例如,配置文件可识别如下映射:
在上面的例子中,如果控制操作系统105从进程识别代理210接收虚拟机250已开始执行ADOBE PHOTOSHOP的识别,控制操作系统105可查询管理程序101以确定配置参数的值,所述配置参数指定管理程序101最初分配给虚拟机250多少虚拟存储器。如果配置参数的值小于2GB,那么控制操作系统105可命令管理程序101改变该值,将虚拟存储器的数量增加至2GB。一些实施例中,控制操作系统105可向管理程序101查询关于虚拟机260中虚拟资源的配置参数的值。这些实施例的一个中,为了使资源可用于对虚拟机250的分配,控制操作系统105可评估在虚拟机260上执行的进程的列举并指示管理程序101从虚拟机260释放资源。在这些实施例的又一个中,再次参考上文的表格,假设控制操作系统105确定标识对虚拟机250可用的虚拟存储器的数量的配置参数的值太低以至于虚拟机250不能执行ADOBE PHOTOSHOP,同时也确定虚拟机260不执行使用其所有分配的虚拟存储器的任何进程,那么控制操作系统105可命令管理程序101减少分配给虚拟机260的虚拟存储器的数量并增加分配给虚拟机250的虚拟存储器的数量。
在一个实施例中,如又一个例子,当进程识别代理210识别到CITRIXXENAPP进程正在虚拟机250中执行时,控制操作系统105内的工具堆栈104动态地重新配置“影子存储器乘数”(shadow memory multiplier)配置参数,增加该值至缺省值的四倍,其指示管理程序增加分配给管理的物理RAM的数量至少为与虚拟机250关联的至少一个页表。
在一些实施例中,控制操作系统105可请求来自第二控制操作系统105b的包括进程和配置参数值之间映射的配置文件。其他实施例中,系统包括执行控制操作系统105b的主计算装置100b,其可提供集中的位置,其他控制操作系统可以从该位置检索已知进程和最著名的配置之间的映射。仍在其他实施例中,系统包括存储元件,例如,但不限于:网络存储装置、网络可访问的数据库或其他存储元件,所述存储元件提供集中的位置,其他控制操作系统可以从该位置检索已知进程和最著名的配置之间的映射。进一步的实施例中,控制操作系统105a可向第二控制操作系统105b传输由控制操作系统105a建立的映射的副本。
响应于名称的识别,改变所指定的配置参数的值(306)。在一个实施例中,管理程序101改变所指定的配置参数的值。在又一个实施例中,管理程序101响应于来自控制操作系统105的指令来改变所述值。
在一个实施例中,改变指定分配给虚拟机的物理处理器时间的参数。又一个实施例中,改变指定分配给与虚拟机管理的页表的随机存取存储器(RAM)的数量的参数。仍在又一个实施例中,改变指定分配给虚拟机的物理随机存取存储器(RAM)的数量的参数。
在一个实施例中,管理程序101改变分配给虚拟机250的进程的数量。又一个实施例中,管理程序101改变标识提供给虚拟机250的功能的标记的数量;例如,特定进程可能受益于对由特定处理器标记所识别的功能的访问而不要求其他功能。仍在又一个实施例中,管理程序101改变虚拟机250使用虚拟存储器的方法;例如,管理程序101可改变存储器的数量或者用于分配存储器的方法,所述存储器用于维护客户页表和管理程序相关的数据的组成。在一些实施例中,管理程序101改变第二虚拟机中至少一个虚拟资源的配置参数的值。在这些实施例的一个中,管理程序响应于从代理和控制操作系统的至少一个接收做出更改的指令来做出改变。在这些实施例的又一个中,管理程序响应于从代理和控制操作系统的至少一个接收所识别的名称来做出改变。仍在这些实施例的又一个中,管理程序改变第二计算装置100b所提供的第二虚拟机中至少一个虚拟资源的配置参数的值。
在一个实施例中,此处所描述的方法和系统允许基于虚拟机所执行的进程的类型动态地给虚拟资源重新分配物理资源。又一个实施例中,控制操作系统能通过识别虚拟机开始执行的进程类型,来评估虚拟机的需求并且确保在给定的虚拟机的处理需求下,当前提供给虚拟资源的物理资源的分配是适当的。仍在又一个实施例中,此处描述的方法和系统通过动态地评估多个虚拟机的每一个的需求,以及从未充分使用它们所分配的访问的虚拟机释放资源同时对执行要求增加对资源的访问的处理器的虚拟机提高资源的分配,来提供改善的功能和效率。
应该理解,此处描述的系统可提供多个组件或每个组件并且这些组件可以在单独机器上提供,或者在一些实施例中,可在分布式系统的多个机器上提供。此外,上述系统和方法可作为一件或多件产品上所体现的或在其中的一个或多个计算机可读程序而被提供。所述产品可以是软盘、硬盘、CD-ROM,闪存卡、PROM、RAM、ROM或磁带。通常,计算机可读程序可以任何编程语言来实现,如LISP、PERL、C、C++、C#、PROLOG,或者诸如JAVA的任何字节码语言。软件程序可以作为目标代码被存储在一件或多件产品上或其中。
已经描述了用于优化运行至少一个进程的虚拟机的配置的方法和系统的某些实施例,对本领域技术人员而言,显而易见可以使用包含所述实施例的概念的其他实施例。本发明应该不限于某些实施例,而是应由下列权利要求的精神和范围进行限制。
Claims (23)
1.一种用于优化运行至少一个进程的虚拟机的配置的方法,所述方法包括:
由在计算装置上执行的管理程序指定在计算装置上执行的虚拟机中的至少一个虚拟资源的配置参数;
由在虚拟机内执行的代理识别当前在虚拟机上执行的至少一个进程的名称;以及
响应于所述名称的识别来改变所指定的配置参数的值。
2.根据权利要求1所述的方法,还包括由管理程序响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置所提供的至少一个物理资源的访问。
3.根据权利要求1所述的方法,还包括由所述代理向管理程序传输所识别的名称。
4.根据权利要求1所述的方法,还包括由管理程序响应于从所述代理接收所识别的名称来改变第二虚拟机中至少一个虚拟资源的配置参数的值。
5.根据权利要求1所述的方法,其中改变还包括改变指定分配给虚拟机的物理处理器时间的值。
6.根据权利要求1所述的方法,其中改变还包括改变指定分配给与虚拟机关联的页表的随机存取存储器(RAM)的数量的值。
7.根据权利要求1所述的方法,其中改变还包括改变指定分配给虚拟机的物理随机存取存储器(RAM)的数量的值。
8.一种在其上具有指令的计算机可读介质,当执行所述指令时提供用于优化运行至少一个进程的虚拟机的配置的方法,所述计算机可读介质包括:
用于由在计算装置上执行的管理程序指定在计算装置上执行的虚拟机中至少一个虚拟资源的配置参数的指令;
用于由在虚拟机内执行的代理识别当前在虚拟机上执行的至少一个进程的名称的指令;以及
用于响应于所述名称的识别来改变所指定的配置参数的值的指令。
9.根据权利要求8所述的计算机可读介质,还包括用于由管理程序响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置所提供的至少一个物理资源的访问的指令。
10.根据权利要求8所述的计算机可读介质,还包括用于由所述代理向管理程序传输所识别的名称的指令。
11.根据权利要求8所述的计算机可读介质,还包括用于由管理程序响应于从代理接收所识别的名称来改变第二虚拟机中至少一个虚拟资源的配置参数的值的指令。
12.根据权利要求8所述的计算机可读介质,还包括用于改变指定分配给虚拟机的物理处理器时间的值的指令。
13.根据权利要求8所述的计算机可读介质,还包括用于改变指定分配给与虚拟机关联的页表的随机存取存储器(RAM)的数量的值的指令。
14.根据权利要求8所述的计算机可读介质,还包括用于改变指定分配给虚拟机的物理随机存取存储器(RAM)的数量的值的指令。
15.一种用于优化运行至少一个进程的虚拟机的配置的系统,所述系统包括:
在计算装置上执行的虚拟机中至少一个虚拟资源,所述至少一个虚拟资源具有配置参数;
在虚拟机内执行的代理,其识别当前在虚拟机上执行的至少一个进程的名称;
管理程序,其响应于从所述代理接收所识别的名称来改变配置参数的值。
16.根据权利要求15所述的系统,其中所述至少一个虚拟资源还包括虚拟处理器。
17.根据权利要求15所述的系统,其中所述至少一个虚拟资源还包括虚拟存储器。
18.根据权利要求15所述的系统,其中所述代理还包括收发器,其用于向管理程序传输所识别的名称。
19.根据权利要求15所述的系统,其中管理程序还包括用于响应于所指定的配置参数的值来分配所述至少一个虚拟资源对计算装置所提供的至少一个物理资源的访问的装置。
20.根据权利要求15所述的系统,其中管理程序还包括用于响应于从代理接收所识别的名称来改变第二虚拟机中至少一个虚拟资源的配置参数的值的装置。
21.根据权利要求15所述的系统,其中管理程序还包括用于改变指定分配给虚拟机的物理处理器时间的值的装置。
22.根据权利要求15所述的系统,其中管理程序还包括用于改变指定分配给与虚拟机关联的页表的随机存取存储器(RAM)的数量的值的装置。
23.根据权利要求15所述的系统,其中管理程序还包括用于改变指定分配给虚拟机的物理随机存取存储器(RAM)的数量的值的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/325713 | 2008-12-01 | ||
US12/325,713 US20100138829A1 (en) | 2008-12-01 | 2008-12-01 | Systems and Methods for Optimizing Configuration of a Virtual Machine Running At Least One Process |
PCT/US2009/065116 WO2010065326A1 (en) | 2008-12-01 | 2009-11-19 | Systems and methods for optimizing configuration of a virtual machine running at least one process |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102257479A true CN102257479A (zh) | 2011-11-23 |
Family
ID=41557518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801514495A Pending CN102257479A (zh) | 2008-12-01 | 2009-11-19 | 用于优化运行至少一个进程的虚拟机的配置的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100138829A1 (zh) |
EP (1) | EP2356566A1 (zh) |
CN (1) | CN102257479A (zh) |
WO (1) | WO2010065326A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103458034A (zh) * | 2013-09-04 | 2013-12-18 | 国云科技股份有限公司 | 一种通过web页面访问spice协议远程桌面的方法 |
CN105874432A (zh) * | 2014-12-08 | 2016-08-17 | 华为技术有限公司 | 一种资源管理方法、主机和端点 |
CN104303168B (zh) * | 2012-04-25 | 2016-12-07 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
CN107209684A (zh) * | 2015-02-27 | 2017-09-26 | 惠普发展公司有限责任合伙企业 | 有助于对被保护资源的扫描 |
WO2023010819A1 (zh) * | 2021-08-04 | 2023-02-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机内部配置的修改方法、系统及装置 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161260B2 (en) * | 2009-02-09 | 2012-04-17 | Oracle International Corporation | Optimal memory allocation for guested virtual machine(s) |
US8352953B2 (en) | 2009-12-03 | 2013-01-08 | International Business Machines Corporation | Dynamically provisioning virtual machines |
US8311032B2 (en) * | 2009-12-03 | 2012-11-13 | International Business Machines Corporation | Dynamically provisioning virtual machines |
US8862914B2 (en) * | 2010-02-26 | 2014-10-14 | Microsoft Corporation | Virtual machine power consumption measurement and management |
US8572677B2 (en) * | 2010-07-14 | 2013-10-29 | William G. Bartholomay | Devices, systems, and methods for enabling reconfiguration of services supported by a network of devices |
US8418185B2 (en) | 2010-10-19 | 2013-04-09 | International Business Machines Corporation | Memory maximization in a high input/output virtual machine environment |
US20120102505A1 (en) * | 2010-10-25 | 2012-04-26 | Microsoft Corporation | Dynamic process virtualization |
US9032146B2 (en) | 2010-11-30 | 2015-05-12 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Dynamic use of raid levels responsive to workload requirements |
US9110709B2 (en) | 2010-12-14 | 2015-08-18 | International Business Machines Corporation | Preserving changes to a configuration of a running virtual machine |
US20120167082A1 (en) * | 2010-12-23 | 2012-06-28 | Sanjay Kumar | Direct sharing of smart devices through virtualization |
EP2668608A4 (en) | 2011-01-27 | 2017-07-05 | L-3 Communications Corporation | Internet isolation for avoiding internet security threats |
US9043785B1 (en) * | 2011-05-23 | 2015-05-26 | Open Invention Network, Llc | Dynamic consolidation of virtual machines |
US20130055254A1 (en) * | 2011-08-31 | 2013-02-28 | Nokia Corporation | Methods and apparatuses for providing a virtual machine with dynamic assignment of a physical hardware resource |
US9128769B2 (en) * | 2011-10-13 | 2015-09-08 | Cavium, Inc. | Processor with dedicated virtual functions and dynamic assignment of functional resources |
US9129060B2 (en) | 2011-10-13 | 2015-09-08 | Cavium, Inc. | QoS based dynamic execution engine selection |
US20130218549A1 (en) * | 2012-02-16 | 2013-08-22 | Tt Government Solutions, Inc. | Dynamic time virtualization for scalable and high fidelity hybrid network emulation |
US10353619B1 (en) * | 2012-06-11 | 2019-07-16 | Veritas Technologies Llc | Systems and methods for applying storage lifecycle policies to backups |
US9104453B2 (en) | 2012-06-21 | 2015-08-11 | International Business Machines Corporation | Determining placement fitness for partitions under a hypervisor |
US9251115B2 (en) | 2013-03-07 | 2016-02-02 | Citrix Systems, Inc. | Dynamic configuration in cloud computing environments |
US10740148B2 (en) * | 2013-07-12 | 2020-08-11 | Hewlett Packard Enterprise Development Lp | Accelerated data operations in virtual environments |
US9459849B2 (en) * | 2014-01-17 | 2016-10-04 | International Business Machines Corporation | Adaptive cloud aware just-in-time (JIT) compilation |
US9535735B2 (en) * | 2014-06-09 | 2017-01-03 | International Business Machines Corporation | Adaptive virtual machine request approver |
US10146592B2 (en) * | 2015-09-18 | 2018-12-04 | Salesforce.Com, Inc. | Managing resource allocation in a stream processing framework |
US10255092B2 (en) * | 2016-02-09 | 2019-04-09 | Airwatch Llc | Managed virtual machine deployment |
US10558798B2 (en) | 2017-06-29 | 2020-02-11 | L3Harris Technologies, Inc. | Sandbox based Internet isolation in a trusted network |
US10554475B2 (en) | 2017-06-29 | 2020-02-04 | L3Harris Technologies, Inc. | Sandbox based internet isolation in an untrusted network |
US11240207B2 (en) | 2017-08-11 | 2022-02-01 | L3 Technologies, Inc. | Network isolation |
US11601467B2 (en) | 2017-08-24 | 2023-03-07 | L3 Technologies, Inc. | Service provider advanced threat protection |
US10992642B2 (en) | 2017-09-22 | 2021-04-27 | L3 Technologies, Inc. | Document isolation |
US11178104B2 (en) | 2017-09-26 | 2021-11-16 | L3 Technologies, Inc. | Network isolation with cloud networks |
US11223601B2 (en) | 2017-09-28 | 2022-01-11 | L3 Technologies, Inc. | Network isolation for collaboration software |
US11184323B2 (en) | 2017-09-28 | 2021-11-23 | L3 Technologies, Inc | Threat isolation using a plurality of containers |
US11336619B2 (en) | 2017-09-28 | 2022-05-17 | L3 Technologies, Inc. | Host process and memory separation |
US11374906B2 (en) | 2017-09-28 | 2022-06-28 | L3 Technologies, Inc. | Data exfiltration system and methods |
US11552987B2 (en) | 2017-09-28 | 2023-01-10 | L3 Technologies, Inc. | Systems and methods for command and control protection |
US11044233B2 (en) | 2017-09-28 | 2021-06-22 | L3 Technologies, Inc. | Browser switching system and methods |
US10931669B2 (en) | 2017-09-28 | 2021-02-23 | L3 Technologies, Inc. | Endpoint protection and authentication |
US11120125B2 (en) | 2017-10-23 | 2021-09-14 | L3 Technologies, Inc. | Configurable internet isolation and security for laptops and similar devices |
US11550898B2 (en) | 2017-10-23 | 2023-01-10 | L3 Technologies, Inc. | Browser application implementing sandbox based internet isolation |
US11170096B2 (en) | 2017-10-23 | 2021-11-09 | L3 Technologies, Inc. | Configurable internet isolation and security for mobile devices |
US10721172B2 (en) | 2018-07-06 | 2020-07-21 | Marvell Asia Pte, Ltd. | Limiting backpressure with bad actors |
KR20200097579A (ko) * | 2019-02-08 | 2020-08-19 | 삼성전자주식회사 | 프로세스 스케줄링을 위한 전자 장치, 저장 매체 및 방법 |
CN117891413B (zh) * | 2024-03-15 | 2024-05-14 | 银河麒麟软件(长沙)有限公司 | 基于扩展spice协议的打印机虚拟化方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008027768A2 (en) * | 2006-08-31 | 2008-03-06 | Egenera, Inc. | Providing virtual machine technology as an embedded layer within a processing platform |
CN101276293A (zh) * | 2007-03-28 | 2008-10-01 | 国际商业机器公司 | 在逻辑分区之间平衡物理系统资源访问的方法和系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5253344A (en) * | 1991-09-05 | 1993-10-12 | International Business Machines Corp. | Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system |
JP2002202959A (ja) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | 動的な資源分配をする仮想計算機システム |
US6820164B2 (en) * | 2001-04-17 | 2004-11-16 | International Business Machines Corporation | Peripheral component interconnect bus detection in logically partitioned computer system involving authorizing guest operating system to conduct configuration input-output operation with functions of pci devices |
JP4291964B2 (ja) * | 2001-04-19 | 2009-07-08 | 株式会社日立製作所 | 仮想計算機システム |
US7007183B2 (en) * | 2002-12-09 | 2006-02-28 | International Business Machines Corporation | Power conservation by turning off power supply to unallocated resources in partitioned data processing systems |
US7194641B2 (en) * | 2004-01-22 | 2007-03-20 | International Business Machines Corporation | Method and apparatus for managing power and thermal alerts transparently to an operating system in a data processing system with increased granularity in reducing power usage and thermal generation |
US7478388B1 (en) * | 2004-04-21 | 2009-01-13 | Vmware, Inc. | Switching between multiple software entities using different operating modes of a processor in a computer system |
US20050273571A1 (en) * | 2004-06-02 | 2005-12-08 | Lyon Thomas L | Distributed virtual multiprocessor |
US8621458B2 (en) * | 2004-12-21 | 2013-12-31 | Microsoft Corporation | Systems and methods for exposing processor topology for virtual machines |
US8104033B2 (en) * | 2005-09-30 | 2012-01-24 | Computer Associates Think, Inc. | Managing virtual machines based on business priorty |
US7698530B2 (en) * | 2007-03-28 | 2010-04-13 | International Business Machines Corporation | Workload management in virtualized data processing environment |
US7698531B2 (en) * | 2007-03-28 | 2010-04-13 | International Business Machines Corporation | Workload management in virtualized data processing environment |
JP2008257572A (ja) * | 2007-04-06 | 2008-10-23 | Hitachi Ltd | 論理区画に動的に資源割り当てを行うストレージシステム及びストレージシステムの論理分割方法 |
US20090265707A1 (en) * | 2008-04-21 | 2009-10-22 | Microsoft Corporation | Optimizing application performance on virtual machines automatically with end-user preferences |
-
2008
- 2008-12-01 US US12/325,713 patent/US20100138829A1/en not_active Abandoned
-
2009
- 2009-11-19 WO PCT/US2009/065116 patent/WO2010065326A1/en active Application Filing
- 2009-11-19 CN CN2009801514495A patent/CN102257479A/zh active Pending
- 2009-11-19 EP EP09793641A patent/EP2356566A1/en not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008027768A2 (en) * | 2006-08-31 | 2008-03-06 | Egenera, Inc. | Providing virtual machine technology as an embedded layer within a processing platform |
CN101276293A (zh) * | 2007-03-28 | 2008-10-01 | 国际商业机器公司 | 在逻辑分区之间平衡物理系统资源访问的方法和系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104303168B (zh) * | 2012-04-25 | 2016-12-07 | 英派尔科技开发有限公司 | 用于灵活资源需求应用的认证 |
CN103458034A (zh) * | 2013-09-04 | 2013-12-18 | 国云科技股份有限公司 | 一种通过web页面访问spice协议远程桌面的方法 |
CN105874432A (zh) * | 2014-12-08 | 2016-08-17 | 华为技术有限公司 | 一种资源管理方法、主机和端点 |
US20170199767A1 (en) | 2014-12-08 | 2017-07-13 | Huawei Technologies Co., Ltd. | Resource management method, host, and endpoint |
CN107645407A (zh) * | 2014-12-08 | 2018-01-30 | 华为技术有限公司 | 一种适配QoS的方法和装置 |
US10489207B2 (en) | 2014-12-08 | 2019-11-26 | Huawei Technologies Co., Ltd. | System for resource management using performance specification and description information of the process |
US11379265B2 (en) | 2014-12-08 | 2022-07-05 | Huawei Technologies Co., Ltd. | Resource management method, host, and endpoint based on performance specification |
CN107209684A (zh) * | 2015-02-27 | 2017-09-26 | 惠普发展公司有限责任合伙企业 | 有助于对被保护资源的扫描 |
CN107209684B (zh) * | 2015-02-27 | 2020-11-20 | 惠普发展公司有限责任合伙企业 | 有助于对被保护资源的扫描 |
WO2023010819A1 (zh) * | 2021-08-04 | 2023-02-09 | 苏州浪潮智能科技有限公司 | 一种虚拟机内部配置的修改方法、系统及装置 |
US11915036B2 (en) | 2021-08-04 | 2024-02-27 | Inspur Suzhou Intelligent Technology Co., Ltd. | Method, system, and device for modifying internal configuration of virtual machine |
Also Published As
Publication number | Publication date |
---|---|
WO2010065326A1 (en) | 2010-06-10 |
US20100138829A1 (en) | 2010-06-03 |
EP2356566A1 (en) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102257479A (zh) | 用于优化运行至少一个进程的虚拟机的配置的系统和方法 | |
CN102272726B (zh) | 便于异构处理器池虚拟化的系统和方法 | |
CN102257481B (zh) | 用于由管理程序控制对物理资源的访问的系统和方法 | |
CN102334114B (zh) | 用于优化确定由虚拟硬盘地址标识的数据位置的过程的系统和方法 | |
CN102317909A (zh) | 便于在多个物理机器间迁移虚拟机的系统和方法 | |
CN102292698B (zh) | 用于在云计算环境中自动管理虚拟资源的系统和方法 | |
CN102656578B (zh) | 用于在第一机器上显示与第二机器的驱动器关联的数据而不必映射该驱动器的方法和系统 | |
CN102804140B (zh) | 用于将设备驱动程序导入到客户计算环境中的方法和系统 | |
CN102968331B (zh) | 一种虚拟机管理系统及其文件访问方法 | |
US9122414B2 (en) | Methods and systems for optimizing a process of archiving at least one block of a virtual disk image | |
US9881351B2 (en) | Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation | |
CN104115471A (zh) | 托管的服务中的客户端带宽模拟 | |
CN112966824A (zh) | 推理库的部署方法、装置和电子设备 | |
CN104487932B (zh) | 用于远程应用和桌面的语音识别支持 | |
KR20200135715A (ko) | 데이터 처리 방법, 장치, 기기 및 매체 | |
CN102754092B (zh) | 用于优化对虚拟盘映像的至少一个块进行归档的过程的方法和系统 | |
CN118605996A (zh) | 基于模拟器的双核异构系统构建方法和装置、设备及介质 | |
KR20220065727A (ko) | 블록체인 시스템의 실행 방법, 장치, 설비 및 저장매체 | |
CN117176837A (zh) | 数据传输方法、装置、设备及介质 | |
CN115798567A (zh) | 双端口随机存取存储器ram测试方法、装置、设备及介质 | |
CN116166605A (zh) | 数据混合传输方法、装置、dma控制器、介质及系统 | |
CN118170499A (zh) | 虚拟云盘分割的方法及装置、电子设备和存储介质 | |
CN118331687A (zh) | 用户态半虚拟化数据路径加速方法、设备、集群以及介质 | |
CN114327741A (zh) | 服务器系统、容器设置方法及装置 | |
CN114443125A (zh) | 基于灰度发布的切流方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111123 |