CN106844010A - 动态内存大页调度处理方法及装置 - Google Patents

动态内存大页调度处理方法及装置 Download PDF

Info

Publication number
CN106844010A
CN106844010A CN201710051984.XA CN201710051984A CN106844010A CN 106844010 A CN106844010 A CN 106844010A CN 201710051984 A CN201710051984 A CN 201710051984A CN 106844010 A CN106844010 A CN 106844010A
Authority
CN
China
Prior art keywords
big page
host
virtual machine
memory
dram
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
Application number
CN201710051984.XA
Other languages
English (en)
Inventor
韦体东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201710051984.XA priority Critical patent/CN106844010A/zh
Publication of CN106844010A publication Critical patent/CN106844010A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种动态内存大页调度处理方法及装置,所述动态内存大页调度处理方法包括以下步骤:获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;根据大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,第一宿主机的第一内存预计占用率;判断所述第一内存预计占用率是否大于第一预设值;当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。通过根据宿主机的内存情况动态地选择开启所述虚拟机的内存大页,开启虚拟机大页的同时保证了宿主机良好的运行性能,使得宿主机的内存和性能达到平衡,提高了宿主机运行的性能。

Description

动态内存大页调度处理方法及装置
技术领域
本发明涉及计算机虚拟化平台技术领域,尤其涉及一种动态内存大页调度处理方法及装置。
背景技术
当前的虚拟化平台中只有虚拟机大页开启与关闭的选项,虚拟化平台由于内部系统多样性,虚拟机业务压力时段分布不均等情况,导致虚拟化平台中内存资源在运行一段时候后,由于虚拟机大页开启关闭不能实时变化,导致没有开启大页的虚拟机,在需要开启大页的时候不能开启;或者开启大页后使得宿主机的内存压力增大,从而导致宿主机的运行性能较差。
发明内容
本发明的主要目的是公开一种内存大页调度处理方法及装置,旨在开启虚拟机大页的同时保证宿主机运行的良好性能。
为实现上述目的,本发明提出一种动态内存大页调度处理方法,所述动态内存大页调度处理方法包括以下步骤:
获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
判断所述第一内存预计占用率是否大于第一预设值;
当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
优选地,所述动态内存大页调度处理方法还包括:
当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
将所述目标虚拟机迁移至,所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
优选地,所述动态内存大页调度处理方法还包括:
获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
获取所述第三宿主机中已经开启大页的待处理虚拟机;
判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
若是,则将所述待处理虚拟机迁移至所述第四宿主机中;
若否,则关闭所述待处理虚拟机的大页。
优选地,所述关闭所述待处理虚拟机的大页之前还包括:
判断所述待处理虚拟机是否被授权可被关闭大页;
若是,则执行所述关闭所述待处理虚拟机的大页的步骤。
优选地,在所述获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值之前包括:
每隔预设时间获取所述虚拟化平台的内存占用率;
判断所述内存占用率的波动是否超过第四预设值;
若否,则执行所述获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值的步骤。
本发明还提出一种动态内存大页调度处理装置,所述动态内存大页调度处理装置包括:
第一获取模块,用于获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
第二获取模块,用于根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
第一判断模块,用于判断所述第一内存预计占用率是否大于第一预设值;
开启模块,用于当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
优选地,所述动态内存大页调度处理装置还包括:
第三获取模块,用于当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
计算模块,用于根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
第二判断模块,用于判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
第一迁移模块,用于将所述目标虚拟机迁移至,所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
优选地,所述动态内存大页调度处理装置还包括:
第四获取模块,用于获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
第五获取模块,用于获取所述第三宿主机中已经开启大页的待处理虚拟机;
第三判断模块,用于判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
第二迁移模块,用于当所述虚拟化平台中存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,将所述待处理虚拟机迁移至所述第四宿主机中;
第一关闭模块,用于当所述虚拟化平台中不存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,关闭所述待处理虚拟机的大页。
优选地,所述动态内存大页调度处理装置还包括:
第四判断模块,用于判断所述待处理虚拟机是否被授权可被关闭大页;
第二关闭模块,用于当所述待处理虚拟机被授权可被关闭大页时,启动所述第一关闭模块。
优选地,所述动态内存大页调度处理装置还包括:
第六获取模块,用于每隔预设时间获取所述虚拟化平台的内存占用率;
第五判断模块,用于判断所述内存占用率的波动是否超过第四预设值;
启动模块,用于当所述内存占用率的波动不超过第四预设值时,启动所述第一获取模块。
在本发明中获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;判断所述第一内存预计占用率是否大于第一预设值;当所述第一内存预计占用率小于或等于所述第一预设值时,开启控制所述目标虚拟机在所述第一宿主机中开启大页。根据要开启大页的虚拟机所在的宿主机的内存情况动态地选择开启所述虚拟机的内存大页,开启虚拟机大页的同时保证了宿主机良好的运行性能,使得宿主机的内存和性能达到平衡,提高了宿主机运行的性能。
附图说明
图1为本发明动态内存大页调度处理方法第一实施例的流程示意图;
图2为本发明动态内存大页调度处理方法第二实施例中迁移目标虚拟机并开启大页的细化流程示意图;
图3为本发明动态内存大页调度处理方法第三实施例中关闭待处理虚拟机大页的细化流程示意图;
图4为本发明动态内存大页调度处理方法第四实施例中根据授权关闭待处理虚拟机大页的细化流程示意图;
图5为本发明动态内存大页调度处理方法第五实施例的流程示意图;
图6为本发明动态内存大页调度处理装置第一实施例的功能模块示意图;
图7为本发明动态内存大页调度处理装置第二实施例的功能模块示意图;
图8为本发明动态内存大页调度处理装置第三实施例的功能模块示意图;
图9为本发明动态内存大页调度处理装置第四实施例的功能模块示意图;
图10为本发明动态内存大页调度处理装置第五实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提出一种动态内存大页调度处理方法,请参照图1,本发明动态内存大页调度处理方法第一实施例包括以下步骤:
步骤S10,获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
当开启虚拟机的大页时,会耗费一部分内存资源来进行内存大页的管理,所述目标虚拟机开启大页所需的内存值的大小与开启大页的页面大小有关,同时开启大页会使宿主机的部分动态内存为固化内存,减少宿主机的空余内存资源。在开启大页前对开启大页所需的内存值进行分析,避免盲目开启,保护了所述目标虚拟机的性能,也提高了整个所述虚拟化平台中内存大页处理效率。
步骤S20,根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
在本实施例中所述大页运行内存值等于所述目标虚拟机未开启大页时被分配的内存值,加两倍的要开启大页的页面大小。需要说明的是,具体大页运行内存值的分析方法应当根据实际问题具体而定,不受本说明书中的公式所限制,例如在有些实施例中,虚拟化平台中的虚拟机在开启大页时会使用大页合并技术,所计算出的大页运行内存值比本实施例中计算的值小。在本实施例中第一内存预计占用率=(内存使用值+大页运行内存值)/宿主机的总内存值。所述内存使用值为所述第一宿主机使用的内存值,所述宿主机的总内存值为所述第一宿主机总的可用内存值。
步骤S30,判断所述第一内存预计占用率是否大于第一预设值;
步骤S40,当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
需要说明的是,在有些实施例中只有当用Hypervisor检测所述目标虚拟机内存消耗过高或Hypervisor检测Cache Miss发生过于频繁时,才为目标虚拟机开启大页。
具体地,在本实施例中所述目标虚拟机开启大页所需的大页运行内存值为4G,所述第一宿主机的内存使用值为10G,所述目标虚拟机所在的第一宿主机的总内存值为20G,所述第一预设值为90%。所以所述第一内存预计占用率=(10G+4G)/20=70%,因为所述第一内存预计占用率小于所述第一预设值90%,所以直接为所述目标虚拟机开启大页;当所述目标虚拟机开启大页所需的大页运行内存值为9G时,所计算出的内存占用率是92%,因为大于第一预设值90%,所以目标虚拟机的不开启大页。通过根据要开启大页的虚拟机所在的宿主机的内存情况动态地选择开启所述虚拟机的内存大页,开启虚拟机大页的同时保证了宿主机良好的运行性能,使得宿主机的内存和性能达到平衡,提高了宿主机运行的性能。
应当说明的是,在有些实施例中,所述目标虚拟机为虚拟机平台中的任一虚拟机,在操作时会遍历平台内的虚拟机按照步骤S10至步骤S40进行处理,以达到在整个平台中内存资源和性能之间的平衡。
进一步地,请参照图2,基于本发明动态内存大页调度处理方法第一实施例,在本发明动态内存大页调度处理方法第二实施例中,所述动态内存大页调度处理方法还包括:
步骤S50,当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
步骤S60,根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
步骤S70,判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
为使更多的虚拟机能开启大页功能提升性能,从整个虚拟化平台的角度考虑,整合整个平台的内存资源,在整个虚拟化平台中寻找内存占用率低的第二宿主机。
步骤S80,将所述目标虚拟机迁移至,所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
当所述第二宿主机的内存占用率(第二内存预计占用率)小于或等于所述第二预设值时,即表示所述第二宿主机在运行所述目标虚拟机开启大页时空余内存资源充足。应把所述目标虚拟机由所述第一宿主机迁移至所述第二宿主机,并为其开启大页以提升所述目标虚拟机的性能,提高整个虚拟化平台的内存使用效率。
具体地,在本实施例中当所述目标虚拟机开启大页所需的大页运行内存值为9G时,所述第二预设值同所述第一预设值一样为90%,所计算出的内存占用率是92%,因为大于所述第一预设值90%,考虑将所述目标虚拟机迁出并为其开启大页,所以在所述虚拟化平台中寻找到第二宿主机,所述第二宿主机总内存值为20G,内存使用值为1G,根据上述计算所述第二内存预计占用率=(9+1)/10=50%,因为小于90%,所以将所述目标虚拟机迁移至所述第二宿主机,并为所述目标虚拟机开启大页;如果所述第二宿主机总内存值为11G,内存使用值为0.9G,所述第二内存预计占用率=(9+0.9)/11=90%,因为等于90%,所以将所述目标虚拟机迁移至所述第二宿主机,并为所述目标虚拟机开启大页。使得利用整个平台的内存资源为更多的虚拟机开启大页,提升了虚拟机的性能,同时把内存资源紧张的虚拟机热迁移至内存资源充沛的其他宿主机,使得整个平台内的内存资源利用率更高。
进一步地,请参照图3,基于本发明动态内存大页调度处理方法第一实施例,在本发明动态内存大页调度处理方法第三实施例中,所述动态内存大页调度处理方法还包括:
步骤S90,获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
当一台宿主机的内存占用率超过第三预设值时,说明其内存资源紧张,空余内存资源不能保证该宿主机的性能发挥,会降低宿主机及在其上运行的虚拟机的性能,所以在本实施例中把该宿主机中已开启大页的虚拟机的大页关闭,以释放被开启大页所占用的固化内存成空余内存资源,降低宿主机的内存占用率。
步骤S100,获取所述第三宿主机中已经开启大页的待处理虚拟机;
步骤S110,判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
在整个平台中寻找是否存在所述第四宿主机,所述第四宿主机在运行所述待处理虚拟机的内存占用率不超过第一预设值,即存在能保证所述待处理虚拟机开启大页运行的同时也满足所述第四宿主机有充足的空余内存资源。
若是,则执行步骤S120,将所述待处理虚拟机迁移至所述第四宿主机中;
若否,则执行步骤S130,关闭所述待处理虚拟机的大页。
具体地,在本实施例中,监测平台内的宿主机,当有第三宿主机的内存占用率超过第三预设值时。需要说明的是,在本实施例中所述第三预设值和所第一预设值都是90%。即在本实施例中,当有宿主机的内存占用率超过90%时,则所述宿主机为第三宿主机,将所述第三宿主机中所有已开启大页的虚拟机列为待处理虚拟机。接着在整个虚拟化平台中逐个寻找是否有第四宿主机在运行所述待处理虚拟机时,内存占用率在第一预设值90%以下,如果存在所述第四宿主机,则迁移所述待处理虚拟机至所述第四宿主机,并处理下一个所述待处理虚拟机,直至处理完所述第三宿主机中所有待处理虚拟机或所述第三宿主机的内存占用率降低到90%(第三预设值)以下;如果所述虚拟化平台中没有所述第四宿主机,即不存在运行所述待处理虚拟机时内存占用率在90%(第一预设值)以下的宿主机时,关闭所述待处理虚拟机的大页,直至处理完所述第三宿主机中所有待处理虚拟机或所述第三宿主机的内存占用率降低到90%(第三预设值)以下。通过监测整个虚拟化平台内所有宿主机,如果有宿主机内存占用率偏高时,把其中的已开启大页的虚拟机迁移到空余内存资源充沛的其他宿主机上,保证了整个平台内所有宿主机的性能,同时使得整个平台内内存占用率更加均匀。
进一步地,请参照图4,基于本发明动态内存大页调度处理方法第三实施例,在本发明动态内存大页调度处理方法第四实施例中,在所述步骤S130之前还包括:
步骤S140,判断所述待处理虚拟机是否被授权可被关闭大页;
当所述待处理虚拟机被授权可被关闭大页时,则执行所述步骤S130。
有些虚拟机用户,因为虚拟机上运行程序的特殊性,不希望所在的虚拟机大页被调整,所以为了尊重用户的具体选择,在开始处理前先进行判断,提升用户体验的同时加快大页处理过程。
本实施例中,在关闭所述待处理虚拟机大页前,先检查该所述待处理虚拟机的是否被授权可被关闭大页,如果被授权,则代表该虚拟机用户同意动态关闭其虚拟机的大页;如果没被授权,则不能关闭所述待处理虚拟机的大页。需要说明的是,在有些实施例中,上述授权由后台人员根据所述虚拟机上运行程序的某些特性而由后台管理人员自行设置的,所述虚拟机的用户不直接参与设置。具体地在本实施例中当检测所述待处理虚拟机有被授权则关闭所述待处理虚拟机的大页;如果没被授权则不进行处理,接着处理下一个所述待处理虚拟机。
进一步地,请参照图5,基于本发明动态内存大页调度处理方法第一实施例,在本发明动态内存大页调度处理方法第五实施例中,在步骤S10之前包括:
步骤S150,每隔预设时间获取所述虚拟化平台的内存占用率;
步骤S160,判断所述内存占用率的波动是否超过第四预设值;
在虚拟化平台中由于所述虚拟机运行的业务会根据时间的变化,在一定周期内存在业务繁忙或业务减少的情况,从而形成内存占用率的波动。例如在有些实施例中所述虚拟化平台中的虚拟机为一公司内部的虚拟化平台,因为8点上班,全体员工同时开始访问虚拟机业务的原因,所述虚拟化平台的在8点左右会迎来业务量的会突然增大,同时所述内存占用率会相应增加,导致所述内存占用率的波动剧烈,而在8点30后公司人员进入工作状态,专注其日常业务,对所述虚拟化平台的访问业务会趋于稳定,导致所述内存占用率的波动减小。
当所述内存占用率的波动不超过第四预设值时,执行所述步骤S10。
过于频繁的调节所述虚拟化平台内虚拟机内存大页,会增加CPU资源和空余内存资源的消耗,影响整个所述虚拟化平台内所有虚拟机的运行性能,所以本发明提出“延迟”的思想,即等待所述虚拟化平台内的内存占用率稳定后做出调整,使得整个内存大页调度更准确,更有效率。
具体地,在本实施例中,所述虚拟化平台是一公司的内部虚拟机平台。所述预设时间为2分钟,所述第四预设值为10%。在工作日七点五十九分到八点零一这段时间内,最低的所述内存占用率最低为10%,最高为80%,其波动为70%,超过了所述10%,所以不执行步骤S10;在十点三十和十点三十二这段时间内,所述内存占用率最低为50%,最高为55%,其波动为5%,低于所述第四预设值为10%,则启动所述步骤S10,开始执行所述步骤S10。
本发明还提出一种动态内存大页调度处理装置。
请参照图6,在本发明动态内存大页调度处理装置第一实施例包括:
第一获取模块10,用于获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
当开启虚拟机的大页时,会耗费一部分空余内存资源来进行内存大页的管理,所述目标虚拟机开启大页所需的存值的大小与开启大页的页面大小有关,同时开启大页会使宿主机的部分动态内存为固化内存,减少宿主机的空余内存资源。在开启大页前对开启大页所需的内存值进行分析,避免盲目开启,保护了所述目标虚拟机的性能,也提高了整个所述虚拟化平台中内存大页处理效率。
第二获取模块20,用于根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
在本实施例中所述大页运行内存值等于所述目标虚拟机未开启大页时被分配的内存值,加两倍的要开启大页的页面大小。需要说明的是,具体大页运行内存值的分析方法应当根据实际问题具体而定,不受本说明书中的公式所限制,例如在有些实施例中,虚拟化平台中的虚拟机在开启大页时会使用大页合并技术,所计算出的大页运行内存值比本实施例中计算的值小。在本实施例中第一内存预计占用率=(内存使用值+大页运行内存值)/宿主机的总内存值。所述内存使用值为所述第一宿主机使用的内存值,所述宿主机的总内存值为所述第一宿主机总的可用内存值。
第一判断模块30,用于判断所述第一内存预计占用率是否大于第一预设值;
开启模块40,用于当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
需要说明的是,在有些实施例中只有当用Hypervisor检测所述目标虚拟机内存消耗过高或Hypervisor检测Cache Miss发生过于频繁时,才为目标虚拟机开启大页。
具体地,在本实施例中第一获取模块10获取所述目标虚拟机开启大页所需的大页运行内存值为4G,所述第一宿主机的内存使用值为10G,所述目标虚拟机所在的第一宿主机的总内存值为20G,所述第一预设值为90%。所以第二获取模块20得到所述第一内存预计占用率=(10G+4G)/20=70%,因为第一判断模块30判断所述第一内存预计占用率小于所述第一预设值90%,所以开启模块40直接为所述目标虚拟机开启大页;当所述目标虚拟机开启大页所需的大页运行内存值为9G时,所计算出的内存占用率是92%,因为第一判断模块30判断所述第一内存预计占用率大于第一预设值90%,所以目标虚拟机的不开启大页。通过根据要开启大页的虚拟机所在的宿主机的内存情况动态地选择开启所述虚拟机的内存大页,开启虚拟机大页的同时保证了宿主机良好的运行性能,使得宿主机的内存和性能达到平衡,提高了宿主机运行的性能。
应当说明的是,在有些实施例中,所述目标虚拟机为虚拟机平台中的任一虚拟机,使用上述模块遍历平台内的所有虚拟机进行处理,以达到在整个平台中内存资源和性能之间的平衡。
进一步地,请参照图7,基于本发明动态内存大页调度处理装置第一实施例,在本发明动态内存大页调度处理装置第二实施例中,所述动态内存大页调度处理装置还包括:
第三获取模块50,用于当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
计算模块60,用于根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
第二判断模块70,用于判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
为使更多的虚拟机能开启大页功能提升性能,从整个虚拟化平台的角度考虑,整合整个平台的空余内存资源,在整个虚拟化平台中寻找内存占用率低的第二宿主机。
第一迁移模块80,用于将所述目标虚拟机迁移至,所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
当所述第二宿主机的内存占用率(第二内存预计占用率)小于或等于所述第二预设值时,即表示所述第二宿主机在运行所述目标虚拟机开启大页时空余内存资源充足。应把所述目标虚拟机由所述第一宿主机迁移至所述第二宿主机,并为其开启大页以提升所述目标虚拟机的性能,提高整个虚拟化平台的内存使用效率。
具体地,在本实施例中当所述目标虚拟机开启大页所需的大页运行内存值为9G时,所述第二预设值同所述第一预设值一样为90%,所计算出的内存占用率是92%,因为大于所述第一预设值90%,考虑将所述目标虚拟机迁出并为其开启大页,所以第三获取模块50在所述虚拟化平台中寻找到第二宿主机,所述第二宿主机总内存值为20G,内存使用值为1G,计算模块60根据上述计算所述第二内存预计占用率=(9+1)/10=50%,因为第二判断模块70判断小于90%,所以第一迁移模块80将所述目标虚拟机迁移至所述第二宿主机,并为所述目标虚拟机开启大页;如果所述第二宿主机总内存值为11G,内存使用值为0.9G,所述第二内存预计占用率=(9+0.9)/11=90%,因为第二判断模块70判断等于90%,所以第一迁移模块80将所述目标虚拟机迁移至所述第二宿主机,并为所述目标虚拟机开启大页。使得利用整个平台的空余内存资源为更多的虚拟机开启大页,提升了虚拟机的性能,同时把内存资源紧张的虚拟机热迁移至空余内存资源充沛的其他宿主机,使得整个平台内的内存资源利用率更高。
进一步地,请参照图8,基于本发明动态内存大页调度处理装置第一实施例,在本发明动态内存大页调度处理装置第三实施例中,所述动态内存大页调度处理装置还包括:
第四获取模块90,用于获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
当一台宿主机的内存占用率超过第三预设值时,说明其内存资源紧张,内存资源不能保证该宿主机的性能发挥,会降低宿主机及在其上运行的虚拟机的性能,所以在本实施例中把该宿主机中已开启大页的虚拟机的大页关闭,以释放被开启大页所占用的固化内存成内存资源,降低宿主机的内存占用率。
第五获取模块100,用于获取所述第三宿主机中已经开启大页的待处理虚拟机;
第三判断模块110,用于判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
在整个平台中寻找是否存在所述第四宿主机,所述第四宿主机在运行所述待处理虚拟机的内存占用率不超过第一预设值,即存在能保证所述待处理虚拟机开启大页运行的同时也满足所述第四宿主机有充足的空余内存资源。
第二迁移模块120,用于当所述虚拟化平台中存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,将所述待处理虚拟机迁移至所述第四宿主机中;
第一关闭模块130,用于当所述虚拟化平台中不存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,关闭所述待处理虚拟机的大页。
具体地,在本实施例中,监测平台内的宿主机,当有第三宿主机的内存占用率超过第三预设值时。需要说明的是,在本实施例中所述第三预设值和所第一预设值都是90%。即在本实施例中,当第四获取模块90发现有宿主机的内存占用率超过90%时,则所述宿主机为第三宿主机,第五获取模块100将所述第三宿主机中所有已开启大页的虚拟机列为待处理虚拟机。接着第三判断模块110在整个虚拟化平台中逐个寻找是否有第四宿主机在运行所述待处理虚拟机时,内存占用率在第一预设值90%以下,如果存在所述第四宿主机,则第二迁移模块120迁移所述待处理虚拟机至所述第四宿主机,并处理下一个所述待处理虚拟机,直至处理完所述第三宿主机中所有待处理虚拟机或所述第三宿主机的内存占用率降低到90%(第三预设值)以下;如果所述虚拟化平台中没有所述第四宿主机,即不存在运行所述待处理虚拟机时内存占用率在90%(第一预设值)以下的宿主机时,第一关闭模块130关闭所述待处理虚拟机的大页,直至处理完所述第三宿主机中所有待处理虚拟机或所述第三宿主机的内存占用率降低到90%(第三预设值)以下。通过监测整个虚拟化平台内所有宿主机,如果有宿主机内存占用率偏高时,把其中的已开启大页的虚拟机迁移到空余内存资源充沛的其他宿主机上,保证了整个平台内所有宿主机的性能,同时使得整个平台内内存占用率更加均匀。
进一步地,请参照图9,基于本发明动态内存大页调度处理装置第三实施例,在本发明动态内存大页调度处理装置第四实施例中,所述动态内存大页调度处理装置还包括
第四判断模块140,用于判断所述待处理虚拟机是否被授权可被关闭大页;
第二关闭模块141,用于当所述待处理虚拟机被授权可被关闭大页时,启动所述第一关闭模块130。
有些虚拟机用户,因为虚拟机上运行程序的特殊性,不希望所在的虚拟机大页被调整,所以为了尊重用户的具体选择,在开始处理前先进行判断,提升用户体验的同时加快大页处理过程。
本实施例中,在关闭所述待处理虚拟机大页前,先检查该所述待处理虚拟机的是否被授权可被关闭大页,如果被授权,则代表该虚拟机用户同意动态关闭其虚拟机的大页;如果没被授权,则不能关闭所述待处理虚拟机的大页。需要说明的是,在有些实施例中,上述授权由后台人员根据所述虚拟机上运行程序的某些特性而由后台管理人员自行设置的,所述虚拟机的用户不直接参与设置。具体地在本实施例中当第四判断模块140判断所述待处理虚拟机有被授权则启动第二关闭模块141关闭所述待处理虚拟机的大页;如果没被授权则不进行处理,接着处理下一个所述待处理虚拟机。
进一步地,请参照图10,基于本发明动态内存大页调度处理装置第一实施例,在本发明动态内存大页调度处理装置第五实施例中,所述动态内存大页调度处理装置还包括:
第六获取模块150,用于每隔预设时间获取所述虚拟化平台的内存占用率;
第五判断模块160,用于判断所述内存占用率的波动是否超过第四预设值;
在虚拟化平台中由于所述虚拟机运行的业务会根据时间的变化,在一定周期内存在业务繁忙或业务减少的情况,从而形成内存占用率的波动。例如在有些实施例中所述虚拟化平台中的虚拟机为一公司内部的虚拟化平台,因为8点上班,全体员工同时开始访问虚拟机业务的原因,所述虚拟化平台的在8点左右会迎来业务量的会突然增大,同时所述内存占用率会相应增加,导致所述内存占用率的波动剧烈,而在8点30后公司人员进入工作状态,专注其日常业务,对所述虚拟化平台的访问业务会趋于稳定,导致所述内存占用率的波动减小。
启动模块161,用于当所述内存占用率的波动不超过第四预设值时,启动所述第一获取模块10。
过于频繁的调节所述虚拟化平台内虚拟机内存大页,会增加CPU资源和空余内存资源的消耗,影响整个所述虚拟化平台内所有虚拟机的运行性能,所以本发明提出“延迟”的思想,即等待所述虚拟化平台内的内存占用率稳定后做出调整,使得整个内存大页调度更准确,更有效率。
具体地,在本实施例中,所述虚拟化平台是一公司的内部虚拟机平台。所述预设时间为2分钟,所述第四预设值为10%。第六获取模块150在工作日七点五十九分到八点零一这段时间内,获取最低的所述内存占用率最低为10%,最高为80%,其波动为70%,第五判断模块160判断超过了所述10%,所以不开启所述第一获取模块10;在十点三十和十点三十二这段时间内,所述内存占用率最低为50%,最高为55%,其波动为5%,第五判断模块160判断低于所述第四预设值为10%,则打开启动模块161开启所述第一获取模块10。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种动态内存大页调度处理方法,其特征在于,所述动态内存大页调度处理方法包括以下步骤:
获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
判断所述第一内存预计占用率是否大于第一预设值;
当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
2.如权利要求1所述的动态内存大页调度处理方法,其特征在于,所述动态内存大页调度处理方法还包括:
当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
将所述目标虚拟机迁移至所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
3.如权利要求1所述的动态内存大页调度处理方法,其特征在于,所述动态内存大页调度处理方法还包括:
获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
获取所述第三宿主机中已经开启大页的待处理虚拟机;
判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
若是,则将所述待处理虚拟机迁移至所述第四宿主机中;
若否,则关闭所述待处理虚拟机的大页。
4.如权利要求3所述的动态内存大页调度处理方法,其特征在于,所述关闭所述待处理虚拟机的大页之前还包括:
判断所述待处理虚拟机是否被授权可被关闭大页;
若是,则执行所述关闭所述待处理虚拟机的大页的步骤。
5.如权利要求1至4任一项所述的动态内存大页调度处理方法,其特征在于,在所述获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值之前包括:
每隔预设时间获取所述虚拟化平台的内存占用率;
判断所述内存占用率的波动是否超过第四预设值;
若否,则执行所述获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值的步骤。
6.一种动态内存大页调度处理装置,其特征在于,所述动态内存大页调度处理装置包括:
第一获取模块,用于获取虚拟化平台中未开启大页的目标虚拟机开启大页所需的大页运行内存值;
第二获取模块,用于根据所述大页运行内存值,预估在所述目标虚拟机所在的第一宿主机中对所述目标虚拟机开启大页时,所述第一宿主机的第一内存预计占用率;
第一判断模块,用于判断所述第一内存预计占用率是否大于第一预设值;
开启模块,用于当所述第一内存预计占用率小于或等于所述第一预设值时,控制所述目标虚拟机在所述第一宿主机中开启大页。
7.如权利要求6所述的动态内存大页调度处理装置,其特征在于,所述动态内存大页调度处理装置还包括:
第三获取模块,用于当所述第一内存预计占用率大于所述第一预设值时,获取第二宿主机的内存占用率;
计算模块,用于根据所述第二宿主机的内存占用率和所述大页运行内存值,计算将所述目标虚拟机置于所述第二宿主机中开启大页运行时,所述第二宿主机的第二内存预计占用率;
第二判断模块,用于判断各第二宿主机对应的第二内存预计占用率是否大于第二预设值;
第一迁移模块,用于将所述目标虚拟机迁移至,所述第二内存预计占用率小于或等于第二预设值的一第二宿主机中,并开启大页。
8.如权利要求6所述的动态内存大页调度处理装置,其特征在于,所述动态内存大页调度处理装置还包括:
第四获取模块,用于获取虚拟化平台中宿主机的内存占用率大于第三预设值的第三宿主机;
第五获取模块,用于获取所述第三宿主机中已经开启大页的待处理虚拟机;
第三判断模块,用于判断所述虚拟化平台中是否存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机;
第二迁移模块,用于当所述虚拟化平台中存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,将所述待处理虚拟机迁移至所述第四宿主机中;
第一关闭模块,用于当所述虚拟化平台中不存在将所述待处理虚拟机运行后,内存占用率小于所述第一预设值的第四宿主机时,关闭所述待处理虚拟机的大页。
9.如权利要求8所述的动态内存大页调度处理装置,其特征在于,所述动态内存大页调度处理装置还包括:
第四判断模块,用于判断所述待处理虚拟机是否被授权可被关闭大页;
第二关闭模块,用于当所述待处理虚拟机被授权可被关闭大页时,启动所述第一关闭模块。
10.如权利要求6至9任一项所述的动态内存大页调度处理装置,其特征在于,所述动态内存大页调度处理装置还包括:
第六获取模块,用于每隔预设时间获取所述虚拟化平台的内存占用率;
第五判断模块,用于判断所述内存占用率的波动是否超过第四预设值;
启动模块,用于当所述内存占用率的波动不超过第四预设值时,启动所述第一获取模块。
CN201710051984.XA 2017-01-20 2017-01-20 动态内存大页调度处理方法及装置 Pending CN106844010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710051984.XA CN106844010A (zh) 2017-01-20 2017-01-20 动态内存大页调度处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710051984.XA CN106844010A (zh) 2017-01-20 2017-01-20 动态内存大页调度处理方法及装置

Publications (1)

Publication Number Publication Date
CN106844010A true CN106844010A (zh) 2017-06-13

Family

ID=59120481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710051984.XA Pending CN106844010A (zh) 2017-01-20 2017-01-20 动态内存大页调度处理方法及装置

Country Status (1)

Country Link
CN (1) CN106844010A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182117A (zh) * 2018-01-25 2018-06-19 郑州云海信息技术有限公司 一种基于x86平台的内存大页动态切换方法
CN111562975A (zh) * 2020-05-20 2020-08-21 苏州浪潮智能科技有限公司 一种虚拟机大页内存的开机调度方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270157A (zh) * 2011-07-25 2011-12-07 浪潮(北京)电子信息产业有限公司 一种实现服务器资源分配的系统及方法
CN103617076A (zh) * 2013-10-31 2014-03-05 中兴通讯股份有限公司 一种虚拟化资源的调度方法和系统及服务端
CN103873516A (zh) * 2012-12-14 2014-06-18 中兴通讯股份有限公司 提高云计算资源池中物理服务器使用率的ha方法和系统
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270157A (zh) * 2011-07-25 2011-12-07 浪潮(北京)电子信息产业有限公司 一种实现服务器资源分配的系统及方法
CN103873516A (zh) * 2012-12-14 2014-06-18 中兴通讯股份有限公司 提高云计算资源池中物理服务器使用率的ha方法和系统
CN103617076A (zh) * 2013-10-31 2014-03-05 中兴通讯股份有限公司 一种虚拟化资源的调度方法和系统及服务端
WO2015068299A1 (ja) * 2013-11-11 2015-05-14 株式会社日立製作所 管理計算機および計算機システムの管理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182117A (zh) * 2018-01-25 2018-06-19 郑州云海信息技术有限公司 一种基于x86平台的内存大页动态切换方法
CN108182117B (zh) * 2018-01-25 2021-08-31 郑州云海信息技术有限公司 一种基于x86平台的内存大页动态切换方法
CN111562975A (zh) * 2020-05-20 2020-08-21 苏州浪潮智能科技有限公司 一种虚拟机大页内存的开机调度方法、装置、设备和介质
CN111562975B (zh) * 2020-05-20 2023-01-06 苏州浪潮智能科技有限公司 一种虚拟机大页内存的开机调度方法、装置、设备和介质

Similar Documents

Publication Publication Date Title
CA2932745C (en) Method and system for traffic control
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
CN107197053A (zh) 一种负载均衡方法和装置
CN102270159B (zh) 一种虚拟化环境中的准入控制与负载均衡方法
CN103810048A (zh) 一种面向资源利用最优的线程数量自动调整方法及装置
CN108429815A (zh) 基于OpenStack的动态资源调度方法
CN103473139A (zh) 虚拟机集群资源分配调度方法
CN102081554A (zh) 云计算操作系统及其内核控制系统及方法
CN105975398A (zh) 一种内存碎片管理方法
CN106528065B (zh) 一种线程获取方法及设备
Sohrabi et al. The effects of hotspot detection and virtual machine migration policies on energy consumption and service levels in the cloud
CN105320570A (zh) 资源管理方法和系统
CN105868004A (zh) 一种基于云计算的业务系统的调度方法及调度装置
CN106844010A (zh) 动态内存大页调度处理方法及装置
CN104572279B (zh) 一种支持节点绑定的虚拟机动态调度方法
CN105893155B (zh) 虚拟机负载均衡控制方法与装置
CN106407013B (zh) 资源动态调度的方法、装置、资源调度服务器及系统
CN106598740A (zh) 一种限制多线程程序占用cpu利用率的系统及限制方法
US9075609B2 (en) Power controller, processor and method of power management
CN107423109B (zh) 基于匿名随机变量的虚拟机节能调度方法
CN104750546B (zh) 一种调整连接池的方法及系统
CN106293913A (zh) 应用程序的控制方法、控制装置和终端
CN109976879B (zh) 一种基于资源使用曲线互补的云计算虚拟机放置方法
US20120042322A1 (en) Hybrid Program Balancing
CN104991825B (zh) 一种基于负载感知的Hypervisor资源超分配及动态调整方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613

RJ01 Rejection of invention patent application after publication