一种JVM能耗控制方法及装置制造方法及图纸

技术编号:15450759 阅读:160 留言:0更新日期:2017-05-31 15:01
本发明专利技术公开了一种JVM能耗控制方法及装置,包括监控JVM中的内存垃圾回收情况,以获取JVM的内存使用信息;在JVM内存空闲时,关闭其对应的物理内存。本发明专利技术利用利用JVM中已有的内存垃圾回收机制,并根据同一物理内存设备在休眠状态和空闲状态下能耗开销的不同,在JVM内存空闲时,转换对应的物理内存状态为休眠状态,简单、高效地控制了与计算平台的能耗问题,有效降低了系统能耗,从而达到了降低内存能耗的目的。

JVM energy consumption control method and device

The invention discloses a method and a device for controlling JVM energy consumption, comprising monitoring the memory garbage collection situation in JVM to obtain the memory usage information of JVM; and closing the corresponding physical memory when the JVM memory is idle. The invention utilizes the memory garbage collection mechanism is already in JVM, and according to the same physical memory device in a dormant state and different power consumption in idle state, the JVM memory is idle, physical memory state transitions corresponding to a dormant state, the energy consumption problem simply and effectively control and reduce the calculation platform. The energy consumption of the system, thereby reducing the energy consumption of the memory.

【技术实现步骤摘要】
一种JVM能耗控制方法及装置
本专利技术涉及计算机信息处理技术,尤指一种云计算平台中的Java虚拟机(JVM,JavaVirtualMachine)能耗控制方法及装置。
技术介绍
云计算作为一种新型的计算方式,以其高可扩展性和高可用性等优点迅速成为学术界和产业界的研究热点。随着云计算的迅速发展,数据中心的数量和规模也迅猛增长,能耗问题也越显突出。从2005年到2010年,全球的数据中心增加了约56%。据估计,一个拥有50000个计算节点的数据中心每年耗电量超过1亿千瓦时。高能耗已成为云计算系统的一个主要问题,且随着近年来云计算规模的日益扩大,其能耗开销也愈加严重。云计算平台中的能耗管理已成为最具挑战性的研究课题之一。根据云平台运营统计数据,电能消耗主要分布在以下三个方面:IT主设备如Java虚拟机用电约占45%-55%;机房环境用电主要包括机房照明、空调制冷和制热等,其中空调用电超过了总用电量的约40%以上;电源系统用电接近总用电量的10%。目前,在很多为实现节能减排目标的研究中,采取的运营措施重点放在了机房环境用电和电源系统用电两方面,对于IT主设备用电缺乏有效控制手段。而根据经验数据,降低一个单位IT主设备的能耗,相当于降低2~3个单位环境系统的能耗,因此,控制IT主设备用电才是降低整体能耗指标的关键所在。目前,针对云计算平台的能耗问题,国内外提出了多种方法,大致包括:一种是动态电压调整(DVS,DynamicVoltageScaling)方法。DVS技术主要针对处理器等电压/频率可调节的IT设备。在完成同样任务的情况下,IT设备稳定在低频率上时能耗会较低。如果能以较低处理器频率满足任务的性能要求,则可以降低系统能耗。DVS方法的关键是要正确预测工作负载对IT设备的需求,并合理分配配额,而这很难实现。另一种是动态电源管理技术。云计算系统中许多部件,如磁盘驱动器、通讯网卡、内存等具有多种功耗模式,这类部件也称为功率可管理部件(PMC,PowerManageableComponent)。实验观察发现,计算机系统的许多部件大部分时间均处于空闲状态。一般地,PMC休眠模式的功耗比运行模式低很多,系统可通过将空闲PMC设置为低功耗休眠模式,以降低PMC空闲时间的功耗。这种方法的关键问题是要解决如何知道系统部件何时处于空闲状态,即要设计额外的内存监控机制,增加了系统的复杂度。还有一种是资源调度算法。云计算平台将各种计算资源、存储资源和网络资源整合在一起,形成资源池。不同资源的能耗通常都不相同,不好的资源调度方式会使得能用较低能耗资源就可以执行的任务调用了高能耗资源,这是形成云计算系统高能耗的原因之一。因此,通过对资源的合理分配及调度,可以降低资源的能耗,但是,由于资源种类多、规模大,在任务与资源之间往往是多对多的关系,因此,给资源的调度带来了一定的难度。目前还没有提出好的资源调度解决方案。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种JVM能耗控制方法及装置,能够简单、高效地控制云计算平台的能耗问题,有效地降低系统能耗。为了达到本专利技术目的,本专利技术提供了一种JVMJava虚拟机能耗控制方法,包括:监控JVM中的内存垃圾回收情况,以获取JVM的内存使用信息;在JVM内存空闲时,关闭其对应的物理内存。对于所述JVM所在JVM集群中的各JVM,该方法之前还包括:系统初始化,关闭暂不用的物理内存;初始化用于存储JVM内存与虚拟化内存之间的映射关系的虚拟化内存映射表、用于存储虚拟化内存与物理内存之间的映射关系的物理内存映射表;获取所有JVM的虚拟机ID;设置内存监控时间间隔T,以及老年区内存空闲允许阈值V。所述获取JVM中的内存使用信息包括:按照预先设置的时间间隔T,监控所述JVM中的内存垃圾回收情况,以获取所述JVM集群中所有JVM的虚拟机ID对应的JVM内存使用信息;所述JVM内存使用信息至少包括垃圾回收的类型及时间、老年代内存已使用比例、老年代内存剩余大小、垃圾碎片比率及其它相关信息。所述确定JVM是否空闲包括:将所述JVM集群中所有虚拟机ID放入队列Q,将队列Q中队首元素的值赋给变量v,在判断出变量v对应的JVM未进行次要垃圾回收minorGC且变量v对应的JVM已进行全局垃圾回收FullGC,则确定JVM内存有空闲;该方法还包括:更新所述物理内存映射表。关闭所述JVM空闲内存对应的物理内存之前,还包括:移动内存垃圾碎片,通过移动虚拟化内存关闭物理内存块,并更新所述虚拟化内存映射表。如果判断出所述变量v对应的JVM已进行minorGC,且有对象从新生代进入老年代,则获取老年代内存已使用比例r,老年代的当前剩余空间大小S;该方法还包括:在老年代当前剩余空间大小小于预先设置的老年区内存空闲允许阈值时,将处于休眠状态物理内存块的状态转换为启用状态。所述将处于休眠状态物理内存块转换为启用状态之前,该方法还包括:移动虚拟化内存,并更新所述虚拟化内存映射表。在判断出变量v对应的JVM已进行minorGC,但是没有对象从新生代进入老年代时;或者,在判断出老年代当前剩余空间大小不小于预先设置的老年区内存空闲允许阈值时;或者,在判断出变量v对应的JVM已进行minorGC,但是变量v对应的JVM未进行FullGC时;或者,在老年代当前剩余空间大小小于预先设置的老年区内存空闲允许阈值的情况下,所述更新虚拟化内存映射表后;或者,所述更新物理内存映射表后;或者,在判断出变量v对应的JVM未进行minorGC且变量v对应的JVM已进行FullGC的情况下,没有物理内存块可关闭时;该方法还包括:判断对所述JVM集群中的JVM是否轮询完成,如果没有,继续对所述JVM集群中的下一个JVM进行监控,直至所述JVM集群中的JVM轮询完成。本专利技术还提供了一种JVM能耗控制装置,至少包括内存垃圾监控单元、虚拟化内存管理单元,以及处理单元,其中,内存垃圾监控单元,用于监控JVM集群中JVM的内存垃圾回收情况,并将JVM内存使用信息发送给虚拟化内存管理单元;虚拟化内存管理单元,用于根据接收到的JVM内存使用信息,在自身可以处理时,移动虚拟化内存,并更新虚拟化内存映射表;在自身不能处理时,通知处理单元;根据来自处理单元的反馈信息管理自身存储的虚拟化内存映射表、物理内存映射表;处理单元,用于接收来自虚拟化内存管理单元的通知,控制物理内存的状态变化,包括休眠状态和启用状态之间的状态控制,并将处理后信息反馈给虚拟化内存管理单元。所述内存垃圾监控单元,具体用于按照预先设置的时间间隔T,获取JVM集群中所有JVM的虚拟机ID对应的JVM内存使用情况,将所有虚拟机ID放入队列Q,将队列Q中队首元素的值赋给变量v;在判断出变量v对应的JVM已进行minorGC,且有对象从新生代进入老年代,则获取老年代内存已使用比例r,当前剩余空间大小S;在当前剩余空间大小S小于老年区内存空闲允许阈值V时,向所述虚拟化内存管理单元发送第一通知;在判断出变量v对应的JVM未进行minorGC,且变量v对应的JVM已进行全局GC,则移动内存垃圾碎片,向所述虚拟化内存管理单元发送第三通知;所述虚拟化内存管理单元,具体用于接收到来自内存垃圾监控单元的第一通知,判断出自身可以通过虚拟化本文档来自技高网
...
一种JVM能耗控制方法及装置

【技术保护点】
一种JVM Java虚拟机能耗控制方法,其特征在于,包括:监控JVM中的内存垃圾回收情况,以获取JVM的内存使用信息;在JVM内存空闲时,关闭其对应的物理内存;确定JVM是否空闲包括:将所述JVM所在JVM集群中所有虚拟机ID放入队列Q,将队列Q中队首元素的值赋给变量v,在判断出变量v对应的JVM未进行次要垃圾回收minor GC且变量v对应的JVM已进行全局垃圾回收Full GC,则确定JVM内存有空闲。

【技术特征摘要】
1.一种JVMJava虚拟机能耗控制方法,其特征在于,包括:监控JVM中的内存垃圾回收情况,以获取JVM的内存使用信息;在JVM内存空闲时,关闭其对应的物理内存;确定JVM是否空闲包括:将所述JVM所在JVM集群中所有虚拟机ID放入队列Q,将队列Q中队首元素的值赋给变量v,在判断出变量v对应的JVM未进行次要垃圾回收minorGC且变量v对应的JVM已进行全局垃圾回收FullGC,则确定JVM内存有空闲。2.根据权利要求1所述的JVM能耗控制方法,其特征在于,对于所述JVM所在JVM集群中的各JVM,该方法之前还包括:系统初始化,关闭暂不用的物理内存;初始化用于存储JVM内存与虚拟化内存之间的映射关系的虚拟化内存映射表、用于存储虚拟化内存与物理内存之间的映射关系的物理内存映射表;获取所有JVM的虚拟机ID;设置内存监控时间间隔T,以及老年区内存空闲允许阈值V。3.根据权利要求2所述的JVM能耗控制方法,其特征在于,所述获取JVM中的内存使用信息包括:按照预先设置的时间间隔T,监控所述JVM中的内存垃圾回收情况,以获取所述JVM集群中所有JVM的虚拟机ID对应的JVM内存使用信息;所述JVM内存使用信息至少包括垃圾回收的类型及时间、老年代内存已使用比例、老年代内存剩余大小、垃圾碎片比率及其它相关信息。4.根据权利要求3所述的JVM能耗控制方法,其特征在于,该方法还包括:更新所述物理内存映射表。5.根据权利要求4所述的JVM能耗控制方法,其特征在于,关闭所述JVM空闲内存对应的物理内存之前,还包括:移动内存垃圾碎片,通过移动虚拟化内存关闭物理内存块,并更新所述虚拟化内存映射表。6.根据权利要求4所述的JVM能耗控制方法,其特征在于,如果判断出所述变量v对应的JVM已进行minorGC,且有对象从新生代进入老年代,则获取老年代内存已使用比例r,老年代的当前剩余空间大小S;该方法还包括:在老年代当前剩余空间大小小于预先设置的老年区内存空闲允许阈值时,将处于休眠状态物理内存块的状态转换为启用状态。7.根据权利要求6所述的JVM能耗控制方法,其特征在于,所述将处于休眠状态物理内存块转换为启用状态之前,该方法还包括:移动虚拟化内存,并更新所述虚拟化内存映射表。8.根据权利要求4~7任一项所述的JVM能耗控制方法,其特征在于,在判断出变量v对应的JVM已进行minorGC,但是没有对象从新生代进入老年代时;或者,在判断出老年代当前剩余空间大小不小于预先设置的老年区内存空闲允许阈值时;或者,在判断出变量v对应的JVM已进行minorGC,但是变量v对应的JVM未进行FullGC时;或者,在老年代当前剩余空间大小小于预先...

【专利技术属性】
技术研发人员:王少锋张云勇陶冶张尼
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:北京,11

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

1