CN101021800A - Virtual machine monitoring - Google Patents
Virtual machine monitoring Download PDFInfo
- Publication number
- CN101021800A CN101021800A CN 200610004392 CN200610004392A CN101021800A CN 101021800 A CN101021800 A CN 101021800A CN 200610004392 CN200610004392 CN 200610004392 CN 200610004392 A CN200610004392 A CN 200610004392A CN 101021800 A CN101021800 A CN 101021800A
- Authority
- CN
- China
- Prior art keywords
- state information
- program
- machine
- internal
- monitor
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 29
- 239000000872 buffer Substances 0.000 claims abstract description 22
- 239000012536 storage buffer Substances 0.000 claims description 32
- 230000000694 effects Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 5
- 230000002349 favourable effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003245 working effect Effects 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
技术领域technical field
本发明涉及一般涉及虚拟机(virtual machines),并且特别、但不唯一地涉及监控虚拟机的内部操作。The present invention relates generally to virtual machines, and in particular, but not exclusively, to monitoring the internal operations of virtual machines.
背景技术Background technique
企业软件已经或多或少地改变了各种各样的企业处理和管理日常工作的方式。商家利用企业软件(例如,基于网络的应用服务器)来控制生产计划、采购与后勤、仓库和存货管理、生产、供应商管理、客户服务、财务、人事管理、以及其它的基础商业活动。随着企业软件工业的继续成熟,为了便利这种各种各样的任务的集合而利用到的多种应用软件和硬件资源被合并为坚固的(robust)、高度集成的解决方案(例如,SAP NetWeaver、SAP xAPPs、mySAP Business Suite等)。Enterprise software has more or less changed the way businesses of all kinds approach and manage their day-to-day work. Merchants utilize enterprise software (eg, web-based application servers) to control production planning, purchasing and logistics, warehouse and inventory management, production, supplier management, customer service, accounting, personnel management, and other basic business activities. As the enterprise software industry continues to mature, the multiple application software and hardware resources utilized to facilitate this diverse collection of tasks are consolidated into robust, highly integrated solutions (e.g., SAP NetWeaver, SAP xAPPs, mySAP Business Suite, etc.).
为了集成各种各样的硬件和软件资源,企业软件的开发者们具有能够最小化甚至切断企业解决方案对服务平台的依赖性的起杆杠平衡作用的(leveraged)跨平台引擎。Java 2平台,Enterprise Edition TM(企业版)(“J2EE”)(例如,J2EE规范,版本1.4)是一种得到Java Virtual Machine(“JVM”,Java虚拟机)引擎支持的基于Java的解决方案。J2EE简化了应用开发,并通过创建标准化和可重复利用的模块部件,降低了对编程和程序员训练的需要。基于Java的解决方案的受欢迎程度非常明显,就好像信息技术(“IT”)世界受Java语言的吸引一样。In order to integrate various hardware and software resources, developers of enterprise software have leveraged cross-platform engines that can minimize or even cut off the dependence of enterprise solutions on service platforms. The Java 2 Platform, Enterprise Edition ("J2EE") (eg, J2EE Specification, Version 1.4) is a Java-based solution powered by the Java Virtual Machine ("JVM") engine. J2EE simplifies application development and reduces the need for programming and programmer training by creating standardized and reusable modular components. The popularity of Java-based solutions is evident, as is the information technology ("IT") world's attraction to the Java language.
随着企业软件被编入现代商业的构件中,企业解决方案的故障就不再仅仅是一种令人讨厌的损害,而是可能会导致对商业的灾难性的严重破坏。因此,坚固的、可靠的软件始终是关键性的。企业软件工业正在步向能够维持、不间断操作而不需要人工干涉的自我修复软件的最终目标。为了达成这一目标,IT技术人员们可以得益于能够监控他们的企业软件的健康状况(health)的传统工具。利用适当的监控工具,IT技术人员可以适时采取行动来保证他们的软件的健康状态,或者发现出错的应用程序以防止重复犯错。当前,JVM并没有提供足够的机制来实时地监控它们的内部操作。As enterprise software is woven into the fabric of modern business, the failure of an enterprise solution is no longer just a nuisance, but can cause catastrophic disruption to the business. Therefore, solid, reliable software is always critical. The enterprise software industry is moving toward the ultimate goal of self-healing software capable of sustaining, uninterrupted operation without human intervention. To achieve this goal, IT technicians can benefit from traditional tools that can monitor the health of their enterprise software. With the proper monitoring tools in place, IT technicians can take timely action to ensure the health of their software, or spot erroneous applications to prevent repeat mistakes. Currently, JVMs do not provide sufficient mechanisms to monitor their internal operations in real time.
发明内容Contents of the invention
描述了一种监控虚拟机(“VM”)的内部操作的系统和方法。VM被操作以解释和执行一个程序。在VM的操作期间,关于VM的内部操作的状态信息被存储在内部存储缓冲器中。随后,在VM的操作期间从内部存储缓冲器抽取(extract)所述状态信息,以便从VM的外部有利位置监控VM的操作。A system and method of monitoring internal operations of a virtual machine ("VM") is described. VM is operated to interpret and execute a program. During operation of the VM, state information about the internal operation of the VM is stored in an internal memory buffer. The state information is then extracted from an internal memory buffer during operation of the VM in order to monitor the operation of the VM from a vantage point external to the VM.
在一个实施例中,通过执行嵌入程序中的监控代码来积累状态信息。所述监控代码的执行可以与所述程序的程序代码的执行交织进行。In one embodiment, status information is accumulated by executing monitoring code embedded in the program. The execution of the monitoring code may be interleaved with the execution of the program code of the program.
在程序的执行期间,创建对象并存储到堆(heap)。当程序不再参考这些对象时,一个自动垃圾收集器(garbage collector)擦除不被参考的对象。在一个实施例中,状态信息包括垃圾收集活动信息。During program execution, objects are created and stored on the heap. An automatic garbage collector (garbage collector) erases unreferenced objects when the program no longer references them. In one embodiment, the state information includes garbage collection activity information.
在一个实施例中,本机VM监控器(monitor)被调用,从内部存储缓冲器中检索状态信息。检索的状态信息可以随后被传送给监控台(monitoringconsole),以便显示在监控台上。In one embodiment, a native VM monitor is invoked to retrieve status information from an internal memory buffer. The retrieved status information may then be communicated to a monitoring console for display on the monitoring console.
在一个实施例中,VM监控程序被在VM上解释和执行。VM监控程序专用于搜集来自VM的部件的至少一部分状态信息,并将所述一部分状态信息存储到内部存储缓冲器。In one embodiment, a VM monitor is interpreted and executed on a VM. The VM monitor program is dedicated to collecting at least a portion of state information from components of the VM and storing the portion of state information to an internal memory buffer.
在一个实施例中,内部存储缓冲器与VM的故障相隔离。如果VM发生故障,内部存储缓冲器可以在发生故障之后被访问,以便对VM故障的原因进行事后调查。In one embodiment, internal memory buffers are isolated from VM failures. If a VM fails, the internal storage buffers can be accessed after the failure for postmortem investigation into the cause of the VM failure.
本发明的实施例可以包括全部或某些上述特征。上述特征可以通过计算机程序、方法、系统或装置、或者任何计算机程序、方法或系统的组合来实施。本发明的一个或多个实施例的这些以及其它细节将在附图以及下面的描述中进行阐述。Embodiments of the invention may include all or some of the features described above. The above features can be implemented by computer programs, methods, systems or devices, or any combination of computer programs, methods or systems. These and other details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below.
附图说明Description of drawings
本发明的非限定性的和非穷举性的实施例将参考下列附图进行描述,其中,除非特意说明,在各个附图中相同的附图标号总是指代相同的部分。Non-limiting and non-exhaustive embodiments of the present invention will be described with reference to the following drawings, wherein like reference numerals refer to like parts throughout the various drawings unless otherwise indicated.
图1是根据本发明的一个实施例的用于监控虚拟机(“VM”)的内部操作的系统的框图。1 is a block diagram of a system for monitoring internal operations of a virtual machine ("VM") according to one embodiment of the present invention.
图2是说明根据本发明的一个实施例的软件系统的框图,该软件系统包括能够提供内部状态信息给外部实体的VM,用于对VM进行监控。2 is a block diagram illustrating a software system including a VM capable of providing internal state information to an external entity for monitoring the VM, according to one embodiment of the present invention.
图3是说明根据本发明的一个实施例的用于监控VM的内部操作的处理的流程图。3 is a flow diagram illustrating a process for monitoring the internal operations of a VM according to one embodiment of the invention.
图4是说明用于实施本发明的一个实施例的演示企业环境的框图。Figure 4 is a block diagram illustrating a demo enterprise environment for implementing one embodiment of the present invention.
图5说明了用于实施本发明的一个实施例的演示处理系统。Figure 5 illustrates a demonstration processing system for implementing one embodiment of the present invention.
具体实施方式Detailed ways
这里描述用于监控虚拟机(“VM”)的内部操作的系统和方法的实施例。图1是根据本发明的实施例的虚拟机(“VM”)105的内部操作的系统100的框图。所说明的系统100的实施例包括VM 105、程序110、以及监控台115。虽然只示出了三个程序110操作在VM 105上,但是更多或更少的程序110可以以时分复用的方式同时运行。Embodiments of systems and methods for monitoring the internal operations of a virtual machine ("VM") are described herein. 1 is a block diagram of a
VM 105解释并执行一个或多个程序110以生成输出结果120。VM 105通过将程序从中间解释(intermediate interpreted)语言(例如,字节码)转换为随后被执行的本机机器语言(native machine language)来解释程序110。在一个实施例中,VM 105是Java VM(“JVM”),而程序110表示编译为Java字节码的Java程序。虽然本发明的实施例是利用面向对象的Java编程语言来描述的,但是这里所描述的技术也可以等效地应用到其它解释语言,以及用于解释和执行这些语言的VM。
在VM 105的操作期间,VM 105可以提供实时状态信息125给监控台115用于在其上显示。状态信息125可以提供在解释和执行程序110期间VM105的内部工作的详细操作信息。信息技术(“IT”)技术人员可以直接地浏览显示在监控台115上的状态信息125,以确定VM 105是否操作在健康状态,是否将要发生故障,以及其它方面。而且,状态信息125可以在VM 105故障/崩溃之后被访问,以便对故障原因进行事后调查。During operation of
状态信息125可以响应于监控台115发出的状态问询130被“拖”(pull)到监控台115,或者状态信息125可以被“推”(push)到监控台115。将状态信息125推到监控台115可以是事件触发的或是周期性触发的。监控台115可以在本地位于执行VM 105的相同硬件机器上,或者有利地在与之通信地耦合的远程机器上执行。状态信息125可以包括各种数据,包括但不局限于,垃圾收集活动、堆状态、执行活动、线程活动、程序活动等。The
图2是说明根据本发明的一个实施例的软件系统200的框图,该软件系统200包括能够提供状态信息125给外部实体的VM 105,用于对VM 105的内部操作进行监控。所说明的软件系统200的实施例包括操作系统205(例如,Windows、Linux、Unix、MS-DOS、OS/400、OS/390等)、本机包装程序(native wrapper)210、VM 105、以及本机VM监控器215。2 is a block diagram illustrating a
本机包装程序210提供VM 105的运行时间环境。在VM 105是符合Java2平台、Enterprise EditionTM(“J2EE”)(例如,J2EE规范,版本1.4)的JVM的实施例中,本机包装程序210通常被称为“JLaunch”。本机包装程序210是由OS 205执行和管理的本机机器代码(例如,编译的C++)。当启动时,本机包装程序210在其内部建立VM 105。Native wrapper 210 provides a runtime environment for VM 105 . In embodiments where VM 105 is a Java2 Platform, Enterprise Edition ™ ("J2EE") compliant JVM (eg, J2EE Specification, Version 1.4), native wrapper 210 is commonly referred to as "JLaunch." Native wrapper 210 is native machine code (eg, compiled C++) executed and managed by OS 205 . When started, native wrapper 210 creates
在操作期间,所说明的VM 105的实施例包括内部存储缓冲器220、内部应用编程接口(“API”)225、本机API 230、堆235、堆管理器237、垃圾收集器240、输入/输出(“I/O”)系统243、以及维护与由VM 105当前执行的各个任务(例如,程序110、垃圾收集器240等)相关联的信息的多个线程245。线程245没有被示出在图2的所有可执行实体中,以便使图2看上去不显拥挤,不使发明变得模糊。内部存储缓冲器220被VM 105用来存储在VM 105操作期间从VM 105的各个内部部件收集的状态信息125。内部API 225提供了VM 105的各个内部部件对内部存储缓冲器220的访问。在VM 105是JVM的实施例中,内部API 225被称为“Java API”。本机API 230提供VM 105外部的实体对内部存储缓冲器220的访问,从而提供了对状态信息125的访问,以便从外部有利位置监控VM 105的内部操作。本机API 230使能(enable)本机机器代码实体,诸如本机VM监控器215来访问内部存储缓冲器220,而不需要在VM 105自身上被解释和执行。虽然图2说明了本机VM监控器215在本机包装程序210的内部,但是在一些实施例中,本机VM监控器215也可以在本机包装程序210的外部。During operation, the illustrated embodiment of
堆235被VM 105作为预留存储器池建立,以便将来在程序110和VM监控程序250(下面详细讨论)被装入时由这些程序使用。堆235由VM 105的堆管理器237管理,用于在程序110请求时分配和解除分配存储器,以及用于存储由程序110(或者VM监控程序250)创建的对象255。Heap 235 is established by
在程序110是面向对象的程序(例如,Java程序)的实施例中,它们一般包括对象和类。当程序110被VM 105装载并执行时,对象255被创建,然后存储到堆235。类包括执行任务并在它们完成那些任务时返回信息的方法。对象实质上是在特性和行为方面模拟了软件程序的片段(pieces)的可重复使用的软件部分。类被用来例示具有这些特性和行为的对象。换句话说,每个对象255都从例示(例如,创建)特定对象255的类继承它们的特性和行为。In embodiments where
随着程序110通过向堆235添入对象255来消耗堆235,在堆235中可接受新对象的存储器会变得缺乏。因此,垃圾收集器240实施一种有规则(disciplined)的程序,用于将消耗的存储器返回到堆235。在一个实施例中,垃圾收集器240被VM 105自动执行,以回收动态分配的存储器,而不需要程序110的程序员的明确指令来执行。当对堆235中的一个对象255不再有参考时,特定对象255被标记进行垃圾收集。然后,当执行垃圾收集器240时,回收被标记的对象255消耗的存储器。当堆235中的可用存储器变得缺乏时,通过有规则地执行垃圾收集可以帮助避免资源泄漏。As
然而,当堆235中的可用存储器变得缺乏时,由于垃圾收集活动,VM 105的性能会受到损害。例如,如果堆235超过了80%的容量,垃圾收集器240的垃圾收集活动会导致VM 105的能产生的计算输出(例如,输出结果120,参见图1)被压缩到几乎中止。虽然垃圾收集器240在删除未被参考的对象255以回收消耗的存储器方面做得相对很好,但是由于各种原因,并不是所有空闲的对象255都被回收了。因此,越陈旧的(older)VM 105越可能在漫长的垃圾收集活动中受到损害。However, when available memory in the heap 235 becomes scarce, the performance of the
在一个实施例中,VM 105的各个实体被“装配”(instrumented)了监控代码,以便积累/生成至少一部分状态信息125,并将所述一部分状态信息复制到内部存储缓冲器220。监控代码的执行可以与实体的常规程序代码的执行交织进行。被监控代码积累/生成的一部分状态信息125可以包括每个实体的处理开始和停止的时间、执行实体的每个线程245的处理运行时间、由特定实体创建的对象255的数量、实体消耗的存储器的量,等等。每个实体被装配来积累和/或生成与特定实体的操作和执行相关的各种状态信息125。这些实体可以包括垃圾收集器240、堆管理器237、I/O系统243等。装配在这些实体中的每一个的监控代码具有以下目的:收集VM 105中可得到的大量状态信息的至少一部分,并且将其报告给内部存储缓冲器220。In one embodiment, various entities of
在一个实施例中,垃圾收集器240被装配有监控代码265,以积累/生成至少一部分状态信息125,并将所述一部分状态信息125复制到内部存储缓冲器220。监控代码265的执行可以与垃圾收集器240的常规垃圾收集活动的执行交织进行。在一个实施例中,响应于垃圾收集事件来执行监控代码265。由监控代码265积累/生成的一部分状态信息125包括多种垃圾收集相关信息。这种垃圾收集相关信息可以包括:由垃圾收集器240执行的垃圾收集事件的时间戳和运行时间、垃圾收集事件的计数、在每个垃圾收集事件期间从堆235收集的对象255的数量的计数、在每个垃圾收集事件期间在堆235中回收的存储器的量、堆235中可用的存储器的量、请求者(例如,程序员110)在堆235中的对象255的命中率、堆235的利用率等。而且,监控代码265可以在内部存储缓冲器220中保存最近垃圾收集事件的历史,并将每个垃圾收集事件编入一些或全部上述垃圾收集相关信息的索引。In one embodiment,
在一个实施例中,VM监控程序250可以在VM 105上解释和执行,其主要目的用于搜集状态信息125和将状态信息125复制到内部存储缓冲器220。VM监控程序250可以被单独提供来执行监控职责。VM监控程序250可以收集/生成上述状态信息125的一些或全部,以及其它监控信息。编写专用于监控任务的独立程序使得可以在设计程序110和垃圾收集器240很久以后再编写监控程序,而不需要更新程序110和垃圾收集器240。VM监控程序250使得开发者生成专用监控程序以调查VM 105或程序110中的问题或“缺陷”(bug),而这些问题或缺陷直到VM 105和/或程序110已经被编写并公布给大众之后才变得明显。实际上,许多软件问题直到软件构架(software build)被公布给更大的用户群(user base)才变得明显。因此,VM监控程序250可以被设计来帮助对程序110和/或VM 105的阿尔法(alpha)测试,或者甚至被包括在程序110和/或VM 105的贝塔(beta)发行版中。VM监控程序250提供用于实施稍后开发的用于在VM 105上执行的监控代码的有效机制。In one embodiment, a
包括监控代码265的监控代码和VM监控器程序250通过内部API 225访问内部存储缓冲器220以复制那里的状态信息125。在一个实施例中,内部API 225利用功能调用提取(abstract)对内部存储缓冲器220的访问。VM105的每个想要复制状态信息125到内部存储缓冲器220的部件,通过内部API 225对内部发表给VM 105的一个或多个功能进行“调用”(call),并将积累的/生成的状态信息125传递给调用的功能。接着,所调用的功能将状态信息125复制到内部存储缓冲器220中的适当插槽(slot)或位置。Monitoring code and
本机VM监控器215担当各种外部实体的代理器(例如,监控台115),请求对内部存储缓冲器220的访问,来监控VM 105的内部操作。在一个实施例中,本机VM监控器215可以接收状态请求130并提供状态信息125或其一部分作为响应。另一种方案,或者附加的,本机VM监控器215可以与监控台115协商一个报告合同,以便有规则地或周期性地提供状态信息125,而不需要状态请求130。因此,本机VM监控器215既可以将状态信息125推到监控台115,也可以由监控台115从本机VM监控器215拖动状态信息125。The native VM monitor 215 acts as a proxy for various external entities (eg, the monitoring station 115), requesting access to the internal storage buffer 220 to monitor the internal operation of the
利用内部API 225提取对内部存储缓冲器220的访问,可以对内部存储缓冲器220的内容与VM 105的其余部分进行隔离,从而保护内部存储缓冲器220的内容。即使VM 105崩溃,进入死循环,或发生其它故障,状态信息220也可以被保护,而不受到故障的损害。由于本机API 230使用本机代码执行,本机API 230并不由VM 105解释和执行。因此,如果VM 105故障,本机VM监控器215仍然能够访问内部存储缓冲器220,以获得在VM 105故障之前刚刚更新的最新状态信息。因此,内部存储缓冲器220的内容可以被检索,以便进行事后调查以确定VM 105的故障原因。Using the internal API 225 to abstract access to the internal storage buffer 220, the content of the internal storage buffer 220 can be isolated from the rest of the
图3是说明根据本发明的一个实施例的用于监控VM 105的内部操作的处理300的流程图。在处理块305,程序110被在VM 105解释和执行。在Java实施例中,程序110是被实时解释和转换为本机机器代码的Java字节码。所转换的机器代码然后被执行。FIG. 3 is a flow diagram illustrating a
在执行程序110期间,监控代码利用属于特定程序110操作、特定程序110的资源消耗、以及VM 105的其它内部工作的状态信息125更新内部存储缓冲器220(处理块310)。如上所述,监控代码可以与VM 105中的各种子实体的程序代码以交织的方式执行。在一个实施例中,监控代码通过对内部API 225的功能调用来调用内部存储缓冲器220,并将收集/生成的状态信息125传递给调用的功能。During execution of the
随着程序110的执行,对象255被创建,并被存储到堆235(处理块315)。只要堆235还有可用的存储器来存储新的对象255,程序110就会继续执行,并创建所需的新的对象255。但是,如果堆235接近其容量,并且堆235中接受新的对象255的可用存储器变得缺乏(判定块320),则处理300继续到处理块325。As
在处理块325,垃圾收集器240执行自动垃圾收集,以便删除未被参考的对象255,并回收在堆235中消耗的存储器。如上所述,响应于垃圾收集事件,监控代码265利用含有垃圾收集信息的状态信息125更新内部存储缓冲器220(处理块330)。在一个实施例中,监控代码265通过对内部API 225的功能调用来访问内部存储缓冲器220。At
在处理块335,本机VM监控器215通过本机API 230从内部存储缓冲器220提取一些或全部状态信息125。在一个实施例中,本机VM监控器215通过对本机API 230的功能调用来调用内部存储缓冲器220。在处理块340中,所检索的状态信息125被传输到监控台115。如上所述,状态信息125可以被推到监控台115,或者可以通过发送状态请求130从本机VM监控器215拖出。监控台115可以在与执行VM 115的相同硬件上执行,或者在通过网络或其它通信媒体与本机VM监控器215通信地耦合的远程硬件上执行。At
图4是说明用于实施本发明的实施例的演示企业环境400的框图。所说明的企业环境400的实施例包括耦合集群(cluster)405以服务来自客户机节点410的请求。集群405可以包括:一个或多个服务节点415,每一个服务节点415都支持一个或多个应用服务器(“AS”)实例(instance)417;消息服务器节点420,支持消息服务器422;数据库节点425,支持数据库427;以及网络分配器(dispatcher)430。FIG. 4 is a block diagram illustrating a
AS实例417可以是网络应用服务器,诸如SAP的网络AS,微软(Microsoft)的.NET等。每个AS实例417可以包括一个或多个VM 105以执行程序110。由AS实例417内的VM 105执行的程序110可以集体提供用于实施AS实例417的各个子层(例如,商业层、集成层、演示层等)的逻辑。应当理解,AS实例417的多种部件被排除在图4之外,这样做是为了清楚起见,以免使得本发明变得模糊。在一个实施例中,VM 105可以是符合J2EE标准的JVM以执行Java程序。在一个实施例中,VM 105可以符合来自Microsoft的.NET的框架以执行.NET程序。AS实例417甚至可以包括符合J2EE标准和.NET框架两者的VM 105。The AS instance 417 may be a network application server, such as SAP's network AS, Microsoft's .NET, and so on. Each AS instance 417 may include one or
网络分配器430实施将来自客户机节点410的服务请求在集群405中的服务器节点415间进行分配的负载平衡机制。例如,网络分配器430实施循环法(round-robin)负载平衡机制或类似机制。网络分配器430可以是具有在集群405的服务器节点415间分配服务请求任务的服务器节点415之一,或者是一个独立的硬件节点。服务请求由服务器节点415处理,然后提供给数据库节点425。数据库节点425提供所请求的数据给服务器节点415,服务器节点415依次对结果进行处理和编排格式,以便显示在客户机节点410上。每个AS实例417还包括其自己的分配器机制,以便将分派给它的服务请求在它的各个VM 105间进行分配。
在VM 105是JVM的实施例中,程序110可以是提供服务器端逻辑、以便在客户机节点410上生成图形用户界面(“GUI”)的小服务程序(servlet),并且还可以包括用于在GUI中提供动态内容的Java服务器网页(“JSP”)。程序110还可以包括提供企业Java组件(Enterprise JavaBean)(“EJB”)的商业逻辑的商业应用、提供客户端逻辑的小应用程序(applet)等。In embodiments where
一个客户机节点410可以执行监控台115以提供对AS实例417的远程监控,特别是对每个VM 105的远程监控。如果IT技术人员注意到VM 105中的一个具有较低的堆利用率、过于活跃的垃圾收集活动等,这个IT技术人员就可以采取适当行动,包括将出问题的VM 105复位。A
图5是说明演示处理系统500的框图,所述处理系统500用于执行VM105、软件环境200、处理300的任何一个,或者用于实施客户机节点410、服务器节点415、消息服务器节点420、或数据库节点425的任何一个。所说明的处理系统500的实施例包括一个或多个处理器(或者中央处理单元)505、系统存储器510、非易失性(“NV”)存储器515、DSU 520、通信链路525、芯片组530。所说明的处理系统500可以表示任何计算系统,包括台式计算机、笔记本计算机、工作站、手持计算机、服务器、刀片式服务器(blade server)等。5 is a block diagram illustrating an
处理系统500的元件如下相互连接。处理器505通过芯片组530通信耦合到系统存储器510、NV存储器515、DSU 520、和通信链路525,以便向它们发送指令或数据,或者从它们接收指令或数据。在一个实施例中,NV存储器515是闪速存储器。在其它实施例中,NV存储器515包括只读存储器(“ROM”)、可编程ROM、可擦除可编程ROM、电可擦除可编程ROM等中的任何一个。在一个实施例中,系统存储器710包括随机存取存储器(“RAM”),诸如动态RAM(“DRAM”)、同步DRAM(“SDRAM”)、双倍速率(double data rate)SDRAM(“DDR SDRAM”)、静态RAM(“SRAM”)等。DSU 520表示任何用于软件数据、应用、和/或操作系统的存储设备,但是最典型的是非易失性存储设备。DSU 520可选地包括一个或多个集成驱动电子(“IDE”)硬盘、增强型IDE(“EIDE”)硬盘、独立盘冗余阵列(“RAID”)、小型计算机系统接口(“SCSI”)硬盘等。虽然DSU 520被示出为在处理系统500的内部,但是DSU 520也可以在外部耦合到处理系统500。通信链路525将处理系统500耦合到网络,以便处理系统500可以在网络上与一个或多个其它计算机进行通信。通信链路525可以包括调制解调器、以太网卡、千兆比特以太网卡、通用串行总线(“USB”)端口、无线网络接口卡、光纤接口等。The elements of
应当理解,为了清楚,处理系统500的各种其它元件都被排除在图5以及本公开文本之外。例如,处理系统500还可以包括图形卡、附加DSU、其它持久数据存储设备(例如,磁带驱动器)等。芯片组530还可以包括系统总线和各种其它数据总线,用于与子部件相互连接,诸如存储控制器集线器和输入/输出(“I/O”)控制器集线器,并且还包括数据总线(例如,外围部件互连总线),用于将外围设备连接到芯片组530。相对应地,处理系统500也可以在没有一个或多个所说明的元件的情况下操作。例如,处理系统500不需要包括DSU 520。It should be understood that various other elements of
这篇说明中所参考的“一个实施例”或“实施例”是指与该实施例相应描述的特定特征、结构、或特性被包括在本发明的至少一个实施例中。因此,在说明书各处出现的语句“在一个实施例中”或“在实施例中”并不必须是指同一个实施例。而且,特定的特征、结构、或特性可以以适当的方式组合到一个或多个实施例中。Reference in this specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described with respect to the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrase "in one embodiment" or "in an embodiment" in various places in the specification are not necessarily referring to the same embodiment. Also, specific features, structures, or characteristics may be combined in an appropriate manner in one or more embodiments.
上面说明的处理300是按照计算机软件和硬件来描述的。所描述的技术可以构成嵌入在机器(例如,计算机)可读介质中的机器可读指令,当由机器执行时可以使机器执行所描述的操作。此外,处理300也可以被嵌入硬件中,诸如专用集成电路(“ASIC”)等。在处理300中一些或全部处理块的出现次序不应当被认为是限定性的。相反,本领域的普通技术人员受本公开内容的启示,应当理解一些处理块可以以未说明的各种次序来执行。
本发明所说明的实施例的上述描述,包括摘要中所描述的内容,并不是为了穷举,或将本发明限定为一种特定形式。在上面的一些例子中,为了避免使某些方面变得不明显,公知的结构、材料或操作并没有被示出或详细描述。在这里描述的本发明的特定实施例或例子是为了说明目的,相关领域技术人员应当认识到可以在发明的范围内进行各种等效的修改。The above description of illustrated embodiments of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to one particular form. In some of the above instances, to avoid obscuring certain aspects, well-known structures, materials or operations have not been shown or described in detail. Specific embodiments, or examples, of the invention are described herein for illustrative purposes, and various equivalent modifications are possible within the scope of the invention, those skilled in the relevant art will recognize.
根据上面的详细描述,可以对本发明进行这些修改。下面权利要求书中所使用的术语并不应当被解释为将本发明限制在说明书和权利要求书中所公开的特定实施例。相反,本发明的保护范围是由下面权利要求书整体确定的,其应当被按照权利要求释义所确定的条款来解释。These modifications can be made to the invention in light of the above detailed description. The terms used in the following claims should not be construed to limit the invention to the specific embodiments disclosed in the specification and claims. Instead, the scope of protection of the present invention is determined entirely by the following claims, which should be construed in accordance with the terms determined by the interpretation of the claims.
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610004392 CN101021800A (en) | 2006-02-16 | 2006-02-16 | Virtual machine monitoring |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610004392 CN101021800A (en) | 2006-02-16 | 2006-02-16 | Virtual machine monitoring |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101021800A true CN101021800A (en) | 2007-08-22 |
Family
ID=38709574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610004392 Pending CN101021800A (en) | 2006-02-16 | 2006-02-16 | Virtual machine monitoring |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101021800A (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753380A (en) * | 2008-12-16 | 2010-06-23 | Sap股份公司 | Monitoring memory consumption |
CN101765225B (en) * | 2008-12-24 | 2012-05-23 | 华为技术有限公司 | Virtual cluster management method and cluster node |
CN102541634A (en) * | 2010-12-20 | 2012-07-04 | 微软公司 | Probe insertion via background virtual machine |
CN103036711A (en) * | 2012-12-05 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | State inspection method and system and management node device |
CN104380264A (en) * | 2012-03-16 | 2015-02-25 | 国际商业机器公司 | Run-time instrumentation reporting |
CN104503891A (en) * | 2014-12-10 | 2015-04-08 | 北京京东尚科信息技术有限公司 | Method and device for online monitoring JVM (Java Virtual Machine) thread |
US9367313B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation directed sampling |
US9367316B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
US9372693B2 (en) | 2012-03-16 | 2016-06-21 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
US9395989B2 (en) | 2012-03-16 | 2016-07-19 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
US9400736B2 (en) | 2012-03-16 | 2016-07-26 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9405543B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
US9489285B2 (en) | 2012-03-16 | 2016-11-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
CN107632920A (en) * | 2017-09-16 | 2018-01-26 | 广西电网有限责任公司电力科学研究院 | A kind of power transmission and transforming equipment monitoring device deep monitored method |
CN107729208A (en) * | 2017-09-16 | 2018-02-23 | 广西电网有限责任公司电力科学研究院 | A kind of power transmission and transforming equipment monitoring device deep monitored system |
-
2006
- 2006-02-16 CN CN 200610004392 patent/CN101021800A/en active Pending
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753380B (en) * | 2008-12-16 | 2014-03-19 | Sap股份公司 | Monitoring memory consumption |
CN101753380A (en) * | 2008-12-16 | 2010-06-23 | Sap股份公司 | Monitoring memory consumption |
CN101765225B (en) * | 2008-12-24 | 2012-05-23 | 华为技术有限公司 | Virtual cluster management method and cluster node |
CN102541634B (en) * | 2010-12-20 | 2015-10-07 | 微软技术许可有限责任公司 | Inserted by the detection of background virtual machine |
CN102541634A (en) * | 2010-12-20 | 2012-07-04 | 微软公司 | Probe insertion via background virtual machine |
US10203974B2 (en) | 2010-12-20 | 2019-02-12 | Microsoft Technology Licensing, Llc | Probe insertion via background virtual machine |
US9405543B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
US9442728B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
CN104380264B (en) * | 2012-03-16 | 2017-06-23 | 国际商业机器公司 | Run time examining report |
US9367313B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation directed sampling |
US9367316B2 (en) | 2012-03-16 | 2016-06-14 | International Business Machines Corporation | Run-time instrumentation indirect sampling by instruction operation code |
US9372693B2 (en) | 2012-03-16 | 2016-06-21 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
US9395989B2 (en) | 2012-03-16 | 2016-07-19 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
US9400736B2 (en) | 2012-03-16 | 2016-07-26 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
CN104380264A (en) * | 2012-03-16 | 2015-02-25 | 国际商业机器公司 | Run-time instrumentation reporting |
US9405541B2 (en) | 2012-03-16 | 2016-08-02 | International Business Machines Corporation | Run-time instrumentation indirect sampling by address |
US9411591B2 (en) | 2012-03-16 | 2016-08-09 | International Business Machines Corporation | Run-time instrumentation sampling in transactional-execution mode |
US9430238B2 (en) | 2012-03-16 | 2016-08-30 | International Business Machines Corporation | Run-time-instrumentation controls emit instruction |
US9442824B2 (en) | 2012-03-16 | 2016-09-13 | International Business Machines Corporation | Transformation of a program-event-recording event into a run-time instrumentation event |
US9489285B2 (en) | 2012-03-16 | 2016-11-08 | International Business Machines Corporation | Modifying run-time-instrumentation controls from a lesser-privileged state |
US9454462B2 (en) | 2012-03-16 | 2016-09-27 | International Business Machines Corporation | Run-time instrumentation monitoring for processor characteristic changes |
US9459873B2 (en) | 2012-03-16 | 2016-10-04 | International Business Machines Corporation | Run-time instrumentation monitoring of processor characteristics |
US9465716B2 (en) | 2012-03-16 | 2016-10-11 | International Business Machines Corporation | Run-time instrumentation directed sampling |
US9471315B2 (en) | 2012-03-16 | 2016-10-18 | International Business Machines Corporation | Run-time instrumentation reporting |
US9483268B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
US9483269B2 (en) | 2012-03-16 | 2016-11-01 | International Business Machines Corporation | Hardware based run-time instrumentation facility for managed run-times |
CN103036711B (en) * | 2012-12-05 | 2016-03-16 | 中国电信股份有限公司 | Condition detection method and system, management node device |
CN103036711A (en) * | 2012-12-05 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | State inspection method and system and management node device |
CN104503891A (en) * | 2014-12-10 | 2015-04-08 | 北京京东尚科信息技术有限公司 | Method and device for online monitoring JVM (Java Virtual Machine) thread |
CN107632920A (en) * | 2017-09-16 | 2018-01-26 | 广西电网有限责任公司电力科学研究院 | A kind of power transmission and transforming equipment monitoring device deep monitored method |
CN107729208A (en) * | 2017-09-16 | 2018-02-23 | 广西电网有限责任公司电力科学研究院 | A kind of power transmission and transforming equipment monitoring device deep monitored system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7886294B2 (en) | Virtual machine monitoring | |
CN101021800A (en) | Virtual machine monitoring | |
US7552153B2 (en) | Virtual machine monitoring using shared memory | |
US7523196B2 (en) | Session monitoring using shared memory | |
US7689989B2 (en) | Thread monitoring using shared memory | |
EP1679602B1 (en) | Shared memory based monitoring for application servers | |
JP5723208B2 (en) | Fail-safe mechanism for dynamic software measurement using callbacks | |
US8458422B1 (en) | Policy based creation of export sets and backup media | |
US7757129B2 (en) | Generalized trace and log facility for first error data collection | |
US8095823B2 (en) | Server computer component | |
US8601469B2 (en) | Method and system for customizing allocation statistics | |
US11232026B2 (en) | Deferred destruction for efficient resource reclamation | |
US8984534B2 (en) | Interfacing between a receiving component of a server application and a remote application | |
US20060248276A1 (en) | Cache monitoring using shared memory | |
US20160342488A1 (en) | Mechanism for providing virtual machines for use by multiple users | |
US20090300093A1 (en) | Server computer | |
US20090172636A1 (en) | Interactive development tool and debugger for web services | |
US20080243970A1 (en) | Method and system for providing loitering trace in virtual machines | |
US20040044643A1 (en) | Managing multiple virtual machines | |
US20090276205A1 (en) | Stablizing operation of an emulated system | |
US20080282255A1 (en) | Highly-available application operation method and system, and method and system of changing application version on line | |
US20080155246A1 (en) | System and method for synchronizing memory management functions of two disparate operating systems | |
WO2006128112A2 (en) | Clustering server providing virtual machine data sharing | |
US8001339B1 (en) | Storage management policies in a virtual data storage system | |
US20080091909A1 (en) | Method and system to manage virtual machine memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: German Waldo Applicant after: SAP AG Address before: German Waldo Applicant before: SAP AG |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG |
|
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20070822 |