CN108958891A - 一种虚拟机内存分配方法、装置及终端 - Google Patents

一种虚拟机内存分配方法、装置及终端 Download PDF

Info

Publication number
CN108958891A
CN108958891A CN201810836263.4A CN201810836263A CN108958891A CN 108958891 A CN108958891 A CN 108958891A CN 201810836263 A CN201810836263 A CN 201810836263A CN 108958891 A CN108958891 A CN 108958891A
Authority
CN
China
Prior art keywords
memory
virtual machine
current
machine
storage allocation
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.)
Granted
Application number
CN201810836263.4A
Other languages
English (en)
Other versions
CN108958891B (zh
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201810836263.4A priority Critical patent/CN108958891B/zh
Publication of CN108958891A publication Critical patent/CN108958891A/zh
Application granted granted Critical
Publication of CN108958891B publication Critical patent/CN108958891B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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 (AREA)

Abstract

本发明公开了一种虚拟机内存分配方法,包括:按照预定周期查询虚拟机的当前内存使用率;判断当前内存使用率是否超过预设的内存使用率警戒阈值;若是,则根据虚拟机的已分配内存,计算虚拟机重新需要分配的内存,并将虚拟机重新需要分配的内存写入配置文件;重启虚拟机以更新虚拟机的已分配内存;该方法能够根据当前虚拟机实际使用内存的情况,灵活确定是否需要增加虚拟机所分配的内存,从而可以实现对虚拟机内存的智能分配,提高设备内存的使用率;本发明还公开了一种虚拟机内存分配装置、终端及计算机可读存储介质,同样具有上述有益效果。

Description

一种虚拟机内存分配方法、装置及终端
技术领域
本发明涉及计算机技术领域,特别涉及一种虚拟机内存分配方法、装置、终端及计算机可读存储介质。
背景技术
目前,虚拟机(例如JVM(Java Virtual Machine,Java虚拟机))内存大小的分配,大多根据所用设备的内存大小,依据经验给虚拟机分配固定大小的内存。这样依据经验为虚拟机分配内存的方法,不能灵活适应各应用程序的需求,即不能实现虚拟机分配的内存和设备其他程序使用的内存达到最优分配方案。例如虚拟机内存分配较少的话,则应用程序的运行及交互请求会有一定响应时间,影响用户对产品的使用体验,也容易造成虚拟机内存泄漏的风险,当虚拟机内存泄漏会使得应用程序服务直接关闭。因此,如何实现对虚拟机内存的智能分配,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种虚拟机内存分配方法、装置、终端及计算机可读存储介质,根据当前虚拟机实际使用内存的情况,灵活对虚拟机的分配内存的大小进行设置,实现对虚拟机内存的智能分配。
为解决上述技术问题,本发明提供一种虚拟机内存分配方法,包括:
按照预定周期查询虚拟机的当前内存使用率;
判断所述当前内存使用率是否超过预设的内存使用率警戒阈值;
若是,则根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,并将所述虚拟机重新需要分配的内存写入配置文件;
重启所述虚拟机以更新所述虚拟机的已分配内存。
可选的,所述方法还包括:
当所述当前内存使用率超过所述内存使用率警戒阈值时,输出异常日志;其中,所述异常日志包含当前操作信息。
可选的,所述方法还包括:
根据所述异常日志更新所述内存使用率警戒阈值。
可选的,重启所述虚拟机以更新所述虚拟机的已分配内存,包括:
判断所述虚拟机的当前操作对应的应用程序所需内存是否会超过所述虚拟机的已分配内存;
若是,则执行所述重启所述虚拟机的步骤;
若否,则将所述当前操作执行完成后,执行所述重启所述虚拟机的步骤。
可选的,根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,包括:
从所述配置文件中读取所述虚拟机的已分配内存;
将所述虚拟机的已分配内存的第一预设倍数作为内存增加数值;
将所述虚拟机的已分配内存加上所述内存增加数值作为初始重新分配内存;
当所述初始重新分配内存小于内存分配上限数值时,将所述初始重新分配内存作为所述虚拟机重新需要分配的内存;其中,所述内存分配上限数值为所述当前设备硬件内存的第二预设倍数,所述第二预设倍数大于0小于1。
本发明还提供一种虚拟机内存分配装置,包括:
查询模块,用于按照预定周期查询虚拟机的当前内存使用率;
判断模块,用于判断所述当前内存使用率是否超过预设的内存使用率警戒阈值;
内存重新分配模块,用于若所述当前内存使用率超过预设的内存使用率警戒阈值,则根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,并将所述虚拟机重新需要分配的内存写入配置文件;
重启模块,用于重启所述虚拟机以更新所述虚拟机的已分配内存。
可选的,所述装置还包括:
输出模块,用于当所述当前内存使用率超过所述内存使用率警戒阈值时,输出异常日志;其中,所述异常日志包含当前操作信息。
可选的,所述内存重新分配模块,包括:
读取单元,用于从所述配置文件中读取所述虚拟机的已分配内存;
计算单元,用于将所述虚拟机的已分配内存的第一预设倍数作为内存增加数值;将所述虚拟机的已分配内存加上所述内存增加数值作为初始重新分配内存;当所述初始重新分配内存小于内存分配上限数值时,将所述初始重新分配内存作为所述虚拟机重新需要分配的内存;其中,所述内存分配上限数值为所述当前设备硬件内存的第二预设倍数,所述第二预设倍数大于0小于1。
本发明还提供一种终端,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述所述虚拟机内存分配方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述虚拟机内存分配方法的步骤。
本发明所提供的一种虚拟机内存分配方法,包括:按照预定周期查询虚拟机的当前内存使用率;判断当前内存使用率是否超过预设的内存使用率警戒阈值;若是,则根据虚拟机的已分配内存,计算虚拟机重新需要分配的内存,并将虚拟机重新需要分配的内存写入配置文件;重启虚拟机以更新虚拟机的已分配内存。
可见,该方法通过查询虚拟机的当前内存使用率,能够确定当前虚拟机实际使用内存的情况,根据当前内存使用率与内存使用率警戒阈值的比较可以灵活确定是否需要增加虚拟机所分配的内存,以满足不同应用程序的需求,从而可以实现对虚拟机内存的智能分配,提高设备内存的使用率;本发明还提供了一种虚拟机内存分配装置、终端及计算机可读存储介质,同样具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种虚拟机内存分配方法的流程图;
图2为本发明实施例所提供的一种虚拟机内存分配装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
虚拟机(例如JVM)通过在实际的计算机上仿真模拟各种计算机功能实现。在虚拟机中运行应用程序,需要在计算机设备上为虚拟机分配一定的内存。现有技术中通常是根据经验为虚拟机分配内存,且分配的内存不会发生变化即分配固定内存。此时如果给虚拟机分配过多的内存,虽然对应的应用程序的请求响应效率会有一定的提升,但是影响当前设备(即计算机)自身其他程序的运行速度;如果给虚拟机分配较少的内存,则应用程序的运行及交互请求会有一定响应时间,影响用户对产品的使用体验,也容易造成虚拟机内存泄漏的风险。且各个应用程序所需内存大小也不相同,所以现有技术中的虚拟机内存分配方法不能适应各种应用程序的需求。本实施例中通过对虚拟机使用内存的情况进行监控,根据当前内存使用率灵活修改虚拟机的已分配内存,从而克服现有技术的缺点,实现对虚拟机内存的智能分配。具体请参考图1,图1为本发明实施例所提供的虚拟机内存分配方法的流程图;该方法可以包括:
步骤101:按照预定周期查询虚拟机的当前内存使用率。
具体的,该步骤的主要目的是监测虚拟机的当前内存使用情况。本实施例中并不限定预定周期的具体数值,例如可以是5秒一次,当然也可以是实时查询,用户可以根据实际情况进行选择。由于每个应用程序所需要使用内存数值短时间内一般不会发生很大的变化,或者是很短时间内用户一般不会发起特别多的操作。因此为了减少对硬件的占用,本实施例按照预定周期查询虚拟机的当前内存使用率。进一步,虚拟机只有在运行应用程序时才会发生内存使用率的变化,因此优选的,可以在启动应用程序时再按照预定周期查询虚拟机的当前内存使用率。
其中,当前内存使用率是当前虚拟机使用内存的数值与目前为虚拟机分配的内存的比值。对应的内存使用率警戒阈值就是大于零小于一的数值,例如为85%。
本实施例并不限定步骤S101的执行主体。例如可以是利用一个新的线程执行虚拟机的内存监视器任务,然后在内存监视器任务内,采用轮询查询(即按照预定周期查询,如5s)的方式,查询虚拟机当前内存的使用情况。此时,不限定内存监视器任务的启动时间,例如可以是在应用程序服务启动时,开辟新线程,启动内存监视器任务。
步骤102:判断当前内存使用率是否超过预设的内存使用率警戒阈值;若是,则进入步骤103。
本实施例中并不对内存使用率警戒阈值的数值大小进行限定。例如可以是85%等,用户可以根据实际情况进行设置。当该内存使用率警戒阈值设置过高时,容易出现虚拟机内存泄漏的风险。设置过低时则会出现内存使用过低且会频繁出现虚拟机的已分配内存的修改。导致最终得到的虚拟机的已分配内存过大。
本实施例通过步骤S102中的判断可以确定是否需要对虚拟机的已分配内存进行修改。当当前内存使用率未超过预设的内存使用率警戒阈值,则基本不会存在内存泄露的风险,对应的应用程序的当前操作可以继续执行。当当前内存使用率超过预设的内存使用率警戒阈值,则可能会发生内存泄漏的风险,需要对虚拟机的已分配内存进行修改,进而使得虚拟机分配的内存能够满足当前应用程序的需求。
可以理解的是,对于本步骤中当前内存使用率未超过预设的内存使用率警戒阈值的情况,可以返回步骤101或直接结束本次流程,等待步骤101对下一时刻的当前内存使用率查询。即此时虚拟机运行正常,对应虚拟机分配的内存也比较合理。不需要重新对虚拟机的已分配内存进行修改。继续监测虚拟机的当前内存使用率即可。
步骤103:根据虚拟机的已分配内存,计算虚拟机重新需要分配的内存,并将虚拟机重新需要分配的内存写入配置文件。
本实施例中当出现当前内存使用率超过预设的内存使用率警戒阈值,则证明当前虚拟机对应的已分配内存不能满足当前启动的应用程序的实际需求,继续运行该应用程序很可能会发生内存泄漏,导致出现挂机的现象。因此该步骤的主要目的就是重新分配虚拟机对应的已分配内存。即通过S104确定虚拟机对应的新的已分配内存。也可以理解为确定需要在原有的已分配内存的基础上增加多少内存,从而使其可以满足当前应用程序的需求。
本实施例并不限定具体的计算规则,用户可以根据实际情况进行确定。例如用户可以获取虚拟机的已分配内存,并在虚拟机的已分配内存上增加预设固定内存得到虚拟机重新需要分配的内存,当然本实施例并不对预设固定内存的数值进行限定。也可以是选择当前设备硬件内存的几分之一(1/10)来确定需要增加的内存,并将该需要增加的内存添加到虚拟机的已分配内存上得到虚拟机重新需要分配的内存。也可以是选择虚拟机的已分配内存的几分之一(1/4)来确定需要增加的内存,并将该需要增加的内存添加到虚拟机的已分配内存上得到虚拟机重新需要分配的内存。
进一步,为了防止得到的虚拟机重新需要分配的内存超过当前设备硬件内存,可以在得到新的分配内存的数值时,将其与当前设备硬件内存进行比较,只有小于当前设备硬件内存时才可以作为虚拟机重新需要分配的内存写入配置文件中。即该步骤完成虚拟机的已分配内存智能再计算,依据当前设备硬件内存和虚拟机的已分配内存,从新完成虚拟机需要分配的内存计算。
其中,当前设备硬件内存可以根据硬件参数获取,对此本实施例并不进行限定。虚拟机的已分配内存可以有用户进行设定,对此本实施例并不进行限定。例如初始配置虚拟机的已分配内存为1024M,当然若应用程序操作逻辑比较复杂,则用户也可以配置虚拟机的已分配内存为稍大的数据。
优选的,根据虚拟机的已分配内存,计算虚拟机重新需要分配的内存可以包括:
从配置文件中读取虚拟机的已分配内存;
将虚拟机的已分配内存的第一预设倍数作为内存增加数值;
将虚拟机的已分配内存加上内存增加数值作为初始重新分配内存;
当初始重新分配内存小于内存分配上限数值时,将初始重新分配内存作为虚拟机重新需要分配的内存;其中,内存分配上限数值为当前设备硬件内存的第二预设倍数,第二预设倍数大于0小于1。
具体的,本实施例并不对第一预设倍数和第二预设倍数的具体数值进行限定。两者可以相等,也可以不相等。其中,第一预设倍数也是大于0小于1的数值,例如0.25。
下面举例说明该步骤的具体过程:首先获取当前设备内存,将其数值的1/4则为内存分配上限数值;其次读配置文件,获取虚拟机的已分配内存,计算得到虚拟机的已分配内存的1/4作为内存增加数值;最后将虚拟机的已分配内存加上内存增加数值作为初始重新分配内存,并将其与内存分配上限数值进行对比,如果小于内存分配上限数值则将初始重新分配内存作为虚拟机重新需要分配的内存。将虚拟机重新需要分配的内存的数值写到配置文件中。
步骤104:重启虚拟机以更新虚拟机的已分配内存。
具体的,由于只有重新启动虚拟机才能够重新读取配置文件,进而实际上完成对虚拟机的已分配内存的更新。因此,当将虚拟机重新需要分配的内存的数值写到配置文件中时,重启虚拟机以更新虚拟机的已分配内存,进而可以安全的可靠的运行应用程序对应的服务。即若重启之前,当前应用程序对应的操作还未完成,则重启后重新执行对应的响应操作。
基于上述技术方案,本发明实施例提供的虚拟机内存分配方法,该方法采用轮询定时查询的方式,查询当前虚拟机已分配内存的使用情况,当没有超过内存使用率警戒阈值,表明当前虚拟机对应的应用程序处于正常运行状态;当达到甚至超出超过内存使用率警戒阈值时,智能更新虚拟机的已分配内存(如采用增加已分配内存的智能分配方案,完成虚拟机内存的智能分配),以确保虚拟机对应的应用程序后续可以正常运行。
基于上述实施例,本实施例还可以包括:
当当前内存使用率超过内存使用率警戒阈值时,输出异常日志;其中,异常日志包含当前操作信息。
具体的,若当前内存使用率超过内存使用率警戒阈值,可能会发生内存泄漏的风险,为了在发生内存泄漏后,或者重启虚拟机以更新虚拟机的已分配内存后,可以确定用户此前需要完成的操作。本实施例通过异常日志记录当前内存使用率超过内存使用率警戒阈值时对应的当前操作信息。后续仅需要对异常日志进行查询即可获取当前操作信息。并根据当前操作信息完成对应响应操作。
本实施例并不对异常日志的存储位置和生成方式进行限定。例如在设备目录下生成扩展名为.phd的日志文件。具体的,触发记录异常日志的函数,记录当前内存使用率超过内存使用率警戒阈值时,进行的相关操作,输出到.PHD日志文件中。
本实施例并不对异常日志记录的内容进行限定,其除了包含当前内存使用率超过内存使用率警戒阈值时对应的当前操作信息,还可以包含其他信息。例如当前内存使用率超过内存使用率警戒阈值时对应的虚拟机的已分配内存。进一步,为了提高虚拟机的已分配内存设置的可靠性,进而减少虚拟机的已分配内存的重新分配操作的次数。优选的,可以根据异常日志更新内存使用率警戒阈值。例如当虚拟机设置的已分配内存为1024M时发生重新分配已分配内存的次数超过预设数值时,可以提高设置的已分配内存的数值。例如可以设置为1024M+512M。
基于上述技术方案,本发明实施例提供的虚拟机内存分配方法,通过对虚拟机内存使用情况的轮询监视,当虚拟机已分配内存的使用率超过内存使用率警戒阈值,首先通过向异常日志文件中写入当前操作信息,其次智能更新虚拟机的已分配内存,智能计算需要扩容的内存并通过写操作完成对配置文件的修改,最后重新启动服务,完成应用程序服务的重新启动。本实施例能够有效的改善虚拟机已分配内存的大小与应用程序操作使用内存不协调的潜在问题,减少因内存溢出问题引发的应用程序服务停止,增加了应用程序操作的流畅性。
基于上述任意实施例,为了进一步增加用户使用应用程序的体验,减少重启过程。本实施例中重启虚拟机以更新虚拟机的已分配内存可以包括:
判断虚拟机的当前操作对应的应用程序所需内存是否会超过虚拟机的已分配内存;
若是,则执行重启虚拟机的步骤;
若否,则将当前操作执行完成后,执行重启虚拟机的步骤。
具体的,本实施例中由于内存使用率警戒阈值对应的内存数值并不是虚拟机已分配内存的最大数值。例如当内存使用率警戒阈值为85%时,若当前内存使用率为86%,其超过了内存使用率警戒阈值,但是虚拟机已分配内存并没有使用完,还是14%的剩余内存。此时若应用程序逻辑比较复杂,则出现内存溢出的可能性很大,若应用程序逻辑比较简单,则出现内存溢出的可能性很小。因此为了减少重启过程以增加用户使用应用程序的体验。本实施例中可以先判断虚拟机的当前操作对应的应用程序所需内存是否会超过虚拟机的已分配内存。即判断一下虚拟机的已分配内存是否能够满足应用程序此前的操作的需求,若可以则先不执行重启虚拟机的步骤,等用户将当前操作执行完成后再执行重启虚拟机的步骤。其中,本实施例并不对判断虚拟机的当前操作对应的应用程序所需内存是否会超过虚拟机的已分配内存的具体方式进行限定。
下面对本发明实施例提供的虚拟机内存分配装置、终端及计算机可读存储介质进行介绍,下文描述的虚拟机内存分配装置、终端及计算机可读存储介质与上文描述的一种虚拟机内存分配方法可相互对应参照。
请参考图2,图2为本发明实施例所提供的虚拟机内存分配装置的结构框图;该装置可以包括:
查询模块100,用于按照预定周期查询虚拟机的当前内存使用率;
判断模块200,用于判断当前内存使用率是否超过预设的内存使用率警戒阈值;
内存重新分配模块300,用于若当前内存使用率超过预设的内存使用率警戒阈值,则根据虚拟机的已分配内存,计算虚拟机重新需要分配的内存,并将虚拟机重新需要分配的内存写入配置文件;
重启模块400,用于重启虚拟机以更新虚拟机的已分配内存。
基于上述实施例,该装置还可以包括:
输出模块,用于当当前内存使用率超过内存使用率警戒阈值时,输出异常日志;其中,异常日志包含当前操作信息。
基于上述实施例,该装置还可以包括:
更新模块,用于根据所述异常日志更新所述内存使用率警戒阈值。
基于上述任意实施例,内存重新分配模块,包括:
读取单元,用于从配置文件中读取虚拟机的已分配内存;
计算单元,用于将虚拟机的已分配内存的第一预设倍数作为内存增加数值;将虚拟机的已分配内存加上内存增加数值作为初始重新分配内存;当初始重新分配内存小于内存分配上限数值时,将初始重新分配内存作为虚拟机重新需要分配的内存;其中,内存分配上限数值为当前设备硬件内存的第二预设倍数,第二预设倍数大于0小于1。
需要说明的是,基于上述任意实施例,所述装置可以是基于可编程逻辑器件实现的,可编程逻辑器件包括FPGA,CPLD,单片机等。
基于上述技术方案,本发明实施例提供的虚拟机内存分配装置,通过对内存使用情况的监视,设置合理的内存使用率警戒阈值,采用智能算法重新计算合理的虚拟机内存数值并写入配置文件,同时生成异常日志文件;再次重新启动应用程序服务已完成配置文件的重新执行,并在重启后进行相关的操作。这样不仅减少了内存溢出的可能,同时取代了现有虚拟机内存分配的人工经验设置方法以及内存溢出后的自动重启服务,降低了人工手动的参与,也增加了应用程序的使用流畅性。
本发明实施例还提供一种终端,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现如上述任意实施例所提供的虚拟机内存分配方法的步骤。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意实施例所提供的虚拟机内存分配方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、终端及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种虚拟机内存分配方法、装置、终端及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种虚拟机内存分配方法,其特征在于,包括:
按照预定周期查询虚拟机的当前内存使用率;
判断所述当前内存使用率是否超过预设的内存使用率警戒阈值;
若是,则根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,并将所述虚拟机重新需要分配的内存写入配置文件;
重启所述虚拟机以更新所述虚拟机的已分配内存。
2.根据权利要求1所述的虚拟机内存分配方法,其特征在于,还包括:
当所述当前内存使用率超过所述内存使用率警戒阈值时,输出异常日志;其中,所述异常日志包含当前操作信息。
3.根据权利要求2所述的虚拟机内存分配方法,其特征在于,还包括:
根据所述异常日志更新所述内存使用率警戒阈值。
4.根据权利要求1所述的虚拟机内存分配方法,其特征在于,重启所述虚拟机以更新所述虚拟机的已分配内存,包括:
判断所述虚拟机的当前操作对应的应用程序所需内存是否会超过所述虚拟机的已分配内存;
若是,则执行所述重启所述虚拟机的步骤;
若否,则将所述当前操作执行完成后,执行所述重启所述虚拟机的步骤。
5.根据权利要求1-4任一项所述的虚拟机内存分配方法,其特征在于,根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,包括:
从所述配置文件中读取所述虚拟机的已分配内存;
将所述虚拟机的已分配内存的第一预设倍数作为内存增加数值;
将所述虚拟机的已分配内存加上所述内存增加数值作为初始重新分配内存;
当所述初始重新分配内存小于内存分配上限数值时,将所述初始重新分配内存作为所述虚拟机重新需要分配的内存;其中,所述内存分配上限数值为所述当前设备硬件内存的第二预设倍数,所述第二预设倍数大于0小于1。
6.一种虚拟机内存分配装置,其特征在于,包括:
查询模块,用于按照预定周期查询虚拟机的当前内存使用率;
判断模块,用于判断所述当前内存使用率是否超过预设的内存使用率警戒阈值;
内存重新分配模块,用于若所述当前内存使用率超过预设的内存使用率警戒阈值,则根据所述虚拟机的已分配内存,计算所述虚拟机重新需要分配的内存,并将所述虚拟机重新需要分配的内存写入配置文件;
重启模块,用于重启所述虚拟机以更新所述虚拟机的已分配内存。
7.根据权利要求6所述的虚拟机内存分配装置,其特征在于,还包括:
输出模块,用于当所述当前内存使用率超过所述内存使用率警戒阈值时,输出异常日志;其中,所述异常日志包含当前操作信息。
8.根据权利要求6或7所述的虚拟机内存分配装置,其特征在于,所述内存重新分配模块,包括:
读取单元,用于从所述配置文件中读取所述虚拟机的已分配内存;
计算单元,用于将所述虚拟机的已分配内存的第一预设倍数作为内存增加数值;将所述虚拟机的已分配内存加上所述内存增加数值作为初始重新分配内存;当所述初始重新分配内存小于内存分配上限数值时,将所述初始重新分配内存作为所述虚拟机重新需要分配的内存;其中,所述内存分配上限数值为所述当前设备硬件内存的第二预设倍数,所述第二预设倍数大于0小于1。
9.一种终端,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的虚拟机内存分配方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的虚拟机内存分配方法的步骤。
CN201810836263.4A 2018-07-26 2018-07-26 一种虚拟机内存分配方法、装置及终端 Active CN108958891B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810836263.4A CN108958891B (zh) 2018-07-26 2018-07-26 一种虚拟机内存分配方法、装置及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810836263.4A CN108958891B (zh) 2018-07-26 2018-07-26 一种虚拟机内存分配方法、装置及终端

Publications (2)

Publication Number Publication Date
CN108958891A true CN108958891A (zh) 2018-12-07
CN108958891B CN108958891B (zh) 2022-02-18

Family

ID=64463892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810836263.4A Active CN108958891B (zh) 2018-07-26 2018-07-26 一种虚拟机内存分配方法、装置及终端

Country Status (1)

Country Link
CN (1) CN108958891B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231066A (zh) * 2020-10-29 2021-01-15 北京思特奇信息技术股份有限公司 一种基于jvm内存使用的优化处理方法及系统
CN112732449A (zh) * 2021-01-20 2021-04-30 湖南大学 基于gpu虚拟化技术的显存资源分配方法、装置及设备
WO2023273564A1 (zh) * 2021-06-28 2023-01-05 北京字节跳动网络技术有限公司 虚拟机内存管理方法、装置、存储介质及电子设备
TWI835479B (zh) * 2022-12-21 2024-03-11 神雲科技股份有限公司 電子裝置及記憶體管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605613A (zh) * 2013-11-21 2014-02-26 中标软件有限公司 云计算环境中动态调整虚拟机内存的方法及系统
CN103838633A (zh) * 2012-11-20 2014-06-04 国际商业机器公司 在动态虚拟机存储器调整中避免内存不足
CN106055410A (zh) * 2016-06-07 2016-10-26 南京邮电大学 一种云计算内存资源分配方法
CN106371896A (zh) * 2016-09-20 2017-02-01 广东欧珀移动通信有限公司 虚拟机内存配置方法及装置、移动终端
CN107273212A (zh) * 2017-06-23 2017-10-20 郑州云海信息技术有限公司 一种动态分配内存的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838633A (zh) * 2012-11-20 2014-06-04 国际商业机器公司 在动态虚拟机存储器调整中避免内存不足
CN103605613A (zh) * 2013-11-21 2014-02-26 中标软件有限公司 云计算环境中动态调整虚拟机内存的方法及系统
CN106055410A (zh) * 2016-06-07 2016-10-26 南京邮电大学 一种云计算内存资源分配方法
CN106371896A (zh) * 2016-09-20 2017-02-01 广东欧珀移动通信有限公司 虚拟机内存配置方法及装置、移动终端
CN107273212A (zh) * 2017-06-23 2017-10-20 郑州云海信息技术有限公司 一种动态分配内存的方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231066A (zh) * 2020-10-29 2021-01-15 北京思特奇信息技术股份有限公司 一种基于jvm内存使用的优化处理方法及系统
CN112231066B (zh) * 2020-10-29 2024-02-13 北京思特奇信息技术股份有限公司 一种基于jvm内存使用的优化处理方法及系统
CN112732449A (zh) * 2021-01-20 2021-04-30 湖南大学 基于gpu虚拟化技术的显存资源分配方法、装置及设备
CN112732449B (zh) * 2021-01-20 2024-04-09 湖南大学 基于gpu虚拟化技术的显存资源分配方法、装置及设备
WO2023273564A1 (zh) * 2021-06-28 2023-01-05 北京字节跳动网络技术有限公司 虚拟机内存管理方法、装置、存储介质及电子设备
TWI835479B (zh) * 2022-12-21 2024-03-11 神雲科技股份有限公司 電子裝置及記憶體管理方法

Also Published As

Publication number Publication date
CN108958891B (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN108958891A (zh) 一种虚拟机内存分配方法、装置及终端
US8429096B1 (en) Resource isolation through reinforcement learning
US9483288B2 (en) Method and system for running a virtual appliance
US20080016121A1 (en) Method, an apparatus and a system for managing a snapshot storage pool
CN104407926B (zh) 一种云计算资源的调度方法
CN109766349A (zh) 任务防重方法、装置、计算机设备及存储介质
CN106663051A (zh) 虚拟化计算中的存储器管理
CN108334396A (zh) 一种数据处理方法和装置、资源组的创建方法和装置
CN106168885A (zh) 一种基于lvm的逻辑卷动态扩容的方法及系统
CN110930291B (zh) 一种gpu显存管理控制方法及相关装置
CN110377529A (zh) 一种全闪存储系统数据管理的方法、装置以及设备
CN107343023A (zh) 一种Mesos管理集群中的资源分配方法、装置及电子设备
CN110399217A (zh) 一种内存资源分配方法、装置及设备
CN107193649A (zh) 一种基于numa系统的任务调度方法及装置
CN106354661A (zh) 一种针对存储软件的内存分配方法及装置
CN110806918A (zh) 基于深度学习神经网络的虚拟机运行方法和装置
CN113515382A (zh) 云资源的分配方法、装置、电子设备及程序产品
CN117311990B (zh) 资源调整方法、装置、电子设备、存储介质及训练平台
CN107102889A (zh) 一种虚拟机资源调整方法及装置
CN109783321A (zh) 监控数据管理方法、装置、终端设备
CN108363719A (zh) 分布式文件系统中可配置的透明压缩方法
CN110018793A (zh) 一种主机io处理控制方法、装置、终端及可读存储介质
CN109358942A (zh) 一种调整管理设备软件的监控页面的方法、装置及设备
CN109150921A (zh) 一种多节点集群的登录方法、装置、设备以及存储介质
CN108958889A (zh) 云数据系统中虚拟机的管理方法和装置

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
GR01 Patent grant
GR01 Patent grant