CN112395045B - 虚拟机回收及其资源调整方法 - Google Patents

虚拟机回收及其资源调整方法 Download PDF

Info

Publication number
CN112395045B
CN112395045B CN202011275175.5A CN202011275175A CN112395045B CN 112395045 B CN112395045 B CN 112395045B CN 202011275175 A CN202011275175 A CN 202011275175A CN 112395045 B CN112395045 B CN 112395045B
Authority
CN
China
Prior art keywords
memory
virtual machine
average
capacity
memory usage
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.)
Active
Application number
CN202011275175.5A
Other languages
English (en)
Other versions
CN112395045A (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.)
Shenzhen ZNV Technology Co Ltd
Nanjing ZNV Software Co Ltd
Original Assignee
Shenzhen ZNV Technology Co Ltd
Nanjing ZNV Software 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 Shenzhen ZNV Technology Co Ltd, Nanjing ZNV Software Co Ltd filed Critical Shenzhen ZNV Technology Co Ltd
Priority to CN202011275175.5A priority Critical patent/CN112395045B/zh
Publication of CN112395045A publication Critical patent/CN112395045A/zh
Application granted granted Critical
Publication of CN112395045B publication Critical patent/CN112395045B/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/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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了虚拟机回收及其资源调整方法,其中,虚拟机资源调整方法包括创建第一配置文件,并根据第一配置文件保留已创建的第一虚拟机;判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据第一配置文件对第一虚拟机的物理资源进行调整;虚拟机回收方法包括在已创建的第二虚拟机上执行目标任务;监测第二虚拟机上执行的目标任务的任务状态是否为完成;若是,则删除目标任务的任务状态是完成的第二虚拟机。本发明解决了软件项目中slave节点资源浪费的问题,不仅实现了对空闲的slave节点的回收再利用,还实现对slave节点物理资源的弹性调整,极大程度上提高了slave节点资源的利用率。

Description

虚拟机回收及其资源调整方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟机回收及其资源调整方法。
背景技术
目前软件开发团队流行在jenkins平台上运行pipeline开发工具来构建项目,以完成企业软件项目的持续集成、部署和交付。其中,软件项目中的每条流水线任务的构建依赖于slave节点(表示虚拟机),随着团队和业务的增加,需要构建的流水线任务越来越多,因此需要构建的较多的slave节点。一方面,软件项目中同一时间执行流水线任务的slave节点并不多,如此一来会有较多的slave节点被空闲下来,同时也被一直保留,从而容易造成slave节点资源的浪费。另一方面,由于slave节点的物理资源(CPU、内存等)是固定的,当slave节点执行的流水线任务较少时,slave节点的较多物理资源部分将会被闲置下来,从而造成了slave节点的物理资源浪费。
发明内容
本申请实施例通过提供一种虚拟机回收及其资源调整方法,旨在解决软件项目中slave节点资源浪费的问题。
本申请实施例提供了一种虚拟机资源调整方法,所述虚拟机资源调整方法,包括:
创建第一配置文件,并根据所述第一配置文件保留已创建的第一虚拟机;
判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整;
其中,所述物理参数信息包括平均磁盘容量剩余率和平均内存使用率。
在一实施例中,所述第一配置文件包括保留第一虚拟机的信息、调整内存容量的扩展和回收的评估算法、增加的磁盘容量的第一数量。
在一实施例中,所述告警规则还包括平均磁盘容量剩余率在第一预设时长内持续小于磁盘容量告警阈值;
所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在第一预设时长内获取多组磁盘容量剩余率,并计算多组所述磁盘容量剩余率的平均磁盘容量剩余率;
若所述平均磁盘容量剩余率小于磁盘容量告警阈值,则为第一虚拟机的磁盘扩展第一数量的磁盘容量。
在一实施例中,所述告警规则还包括平均内存使用率在第二预设时长内持续大于第一内存告警阈值、平均内存使用率在第三预设时长内持续大于第二内存告警阈值和平均内存使用率在第四预设时长内持续小于第三内存告警阈值;
所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在第二预设时长内获取多组第一内存使用率,并计算多组所述第一内存使用率的第一平均内存使用率;
若所述第一平均内存使用率大于第一内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第一扩展,若是,则为第一虚拟机的内存容量进行第一次扩展。
在一实施例中,所述判断第一虚拟机的内存容量是否需要进行第一扩展,若是,则为第一虚拟机的内存容量进行第一次扩展,包括:
按照第五预设时长为一个周期,持续采集n+i个周期的第一平均内存使用率;
滤除n+i个周期中采集的最大第一平均内存使用率和最小第一平均内存使用率,并采用第一公式计算n+i-2个周期中的所有第一平均内存使用率的平均值;所述第一公式为:V1=(U11+U12+……+U1n+i-2)/(n+i-2);
若所述V1>T1,则判定第一虚拟机的内存容量需要进行第一扩展,并采用第二公式计算扩展第一虚拟机的内存容量的第一扩展内存值;
所述第二公式为:
R1e=Rc(U11+U12+......+U1n+i-2)/((n+i-2)((T1-L1)/2+L1))-Rc
其中,U11+U12+……+U1n+i-2表示1~n+i个周期的第一平均内存使用率,V1表示n+i-2个周期中的所有第一平均内存使用率的平均值,T1表示第一内存告警阈值,Rc表示第一虚拟机当前已分配的内存值,R1e表示第一扩展内存值,L1表示第三内存告警阈值。
在一实施例中,所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在第三预设时长内获取多组第二内存使用率,并计算多组所述第二内存使用率的第二平均内存使用率;
若所述第二平均内存使用率大于第二内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第二扩展,若是,则为第一虚拟机的内存容量进行第二次扩展。
在一实施例中,所述判断第一虚拟机的内存容量是否需要进行第二扩展,若是,则为第一虚拟机的内存容量进行第二次扩展,包括:
按照第六预设时长为一个周期,持续采集n个周期的第二平均内存使用率;
滤除n个周期中采集的最大第二平均内存使用率和最小第二平均内存使用率,并采用第三公式计算n-2个周期中的所有第二平均内存使用率的平均值;所述第三公式为:V2=(U21+U22+……+U2n-2)/(n-2);
若所述V2>T2,则判定第一虚拟机的内存容量需要进行第二扩展,并采用第四公式计算扩展第一虚拟机的内存容量的第二扩展内存值;
所述第四公式为:
R2e=Rc(U21+U22+……+U2n-2)/((n-2)((T1-L1)/2+L1))-Rc
其中,U21+U22+……+U2n-2表示1~n-2个周期的第一平均内存使用率,T2表示第二内存告警阈值,V2表示n-2个周期中的所有第二平均内存使用率的平均值,R2e表示第二扩展内存值。
在一实施例中,所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在第四预设时长内获取多组第三内存使用率,并计算多组所述第三内存使用率的第三平均内存使用率;
若所述第三平均内存使用率小于第三内存告警阈值,则判断第一虚拟机的内存容量是否需要进行回收,若是,则对第一虚拟机的内存容量进行回收。
在一实施例中,所述判断第一虚拟机的内存容量是否需要进行回收,若是,则对第一虚拟机的内存容量进行回收,包括:
按照第七预设时长为一个周期,持续采集n+i个周期的第三平均内存使用率;
滤除n+i个周期中采集的最大第三平均内存使用率和最小第三平均内存使用率,并采用第五公式计算n+i-2个周期中的所有第三平均内存使用率的平均值;所述第五公式为:V3=(U31+U32+……+U3n+i-2)/(n+i-2);
若所述V3<L1且U31<T1,U32<T1,……,U3n+i-2<T1,则判定第一虚拟机的内存容量需要进行回收,并采用第六公式计算回收第一虚拟机的内存容量的回收内存值;
所述第六公式为:
Rs=Rc-Rc(U31+U32+……+U3n+i-2)/((n+i-2)((T1-L1)/2+L1));
其中,U31+U32+……+U3n+i-2表示1~n+i个周期的第三平均内存使用率,V3表示n+i-2个周期中的所有第三平均内存使用率的平均值,Rs表示回收内存值。
本申请实施例提供了一种虚拟机回收方法,所述虚拟机回收方法,包括:
在已创建的第二虚拟机上执行目标任务;
监测第二虚拟机上执行的目标任务的任务状态是否为完成;
若是,则删除目标任务的任务状态是完成的第二虚拟机。
本申请实施例中提供的一种虚拟机回收及其资源调整方法的技术方案,至少具有如下技术效果或优点:
由于采用了创建第一配置文件,并根据第一配置文件保留已创建的第一虚拟机;判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据第一配置文件对第一虚拟机的物理资源进行调整的技术方案和在已创建的第二虚拟机上执行目标任务;监测第二虚拟机上执行的目标任务的任务状态是否为完成;若是,则删除目标任务的任务状态是完成的第二虚拟机的技术方案,解决了软件项目中slave节点资源浪费的问题,不仅实现了对空闲的slave节点的回收再利用,还实现对slave节点物理资源的弹性调整,极大程度上提高了slave节点资源的利用率。
附图说明
图1为本发明虚拟机资源调整方法第一实施例的流程示意图;
图2为本发明虚拟机资源调整方法第二实施例的流程示意图;
图3为本发明虚拟机资源调整方法第三实施例的流程示意图;
图4为本发明虚拟机资源调整方法第四实施例的流程示意图;
图5为本发明虚拟机资源调整方法第五实施例的流程示意图;
图6为本发明虚拟机回收方法施例的流程示意图;
具体实施方式
为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了虚拟机资源调整方法和虚拟机回收方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
值得说明的是本发明可以基于OpenStack平台和Jenkins实现,但也不局限于此。其中,OpenStack平台是一个开源的云计算管理平台项目,是一系列软件开源项目的组合;Jenkins是一个开源的可扩展的持续集成工具。通过OpenStack平台创建的实例可以在Jenkins上注册为节点,用于负载Jenkins上定义的各种工作。本发明在Jenkins上创建两种类型的slave节点,分别用于执行相应的软件任务。slave节点也可以称为虚拟机,为了区分,其中一种类型的slave节点记为第一虚拟机,另一种类型的slave节点记为第二虚拟机。相应的,OpenStack平台用于执行虚拟机资源的调整和虚拟机的回收。
在本申请的第一实施例中,首先需要创建若干台第一虚拟机,通过第一虚拟机可以执行程序代码编译、程序代码检查、程序代码打包以及对程序代码部署后的发布。第一虚拟机创建之前,需要配置用于创建第一虚拟机的准备文件,所述准备文件中包括有用于创建第一虚拟机的镜像文件、中央处理器(CPU)数量、内存容量和磁盘容量。然后,根据准备文件可以进行第一虚拟机的创建。其中,通过镜像文件可以生成预设数量台的未配置完成的第一虚拟机,根据中央处理器数量、内存容量和磁盘容量,可以为未配置完成的第一虚拟机配置应用时所需的虚拟物理资源。未配置完成的第一虚拟机的虚拟物理资源配置完成后,即第一虚拟机完成创建,第一虚拟机就可以运行使用。
如图1所示,在本申请的第一实施例中,本申请的虚拟机资源调整方法,包括以下步骤:
步骤S210:创建第一配置文件,并根据所述第一配置文件保留已创建的第一虚拟机。
在本实施例中,首先需要创建关于调整第一虚拟机的物理参数信息和是否保留第一虚拟机的第一配置文件。所述第一配置文件包括保留第一虚拟机的信息、调整内存容量的扩展和回收的评估算法、增加的磁盘容量的第一数量。读取第一配置文件可获得保留第一虚拟机的信息,根据所述保留第一虚拟机的信息可以确定当前创建的第一虚拟机是需要一直进行保留,不能删除。
步骤S220:判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整。
在本实施例中,所述物理参数信息包括平均磁盘容量剩余率和平均内存使用率。具体的,读取第一配置文件后,通过第一配置文件可获得调整第一虚拟机的物理参数信息的调整信息,即调整信息为调整内存容量的扩展和回收的评估算法、增加的磁盘容量的第一数量。在第一虚拟机运行时,获取第一虚拟机当前运行时的物理参数信息,然后将物理参数信息与告警规则进行对比,以判断物理参数信息是否满足告警规则。如果物理参数信息满足告警规则,则根据调整信息对第一虚拟机的物理资源进行动态调整,以避免第一虚拟机的物理资源的浪费。其中,物理资源包括内存容量和磁盘容量。
本实施例根据上述技术方案,由于采用创建第一配置文件,并根据第一配置文件保留已创建的第一虚拟机,判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据第一配置文件对第一虚拟机的物理资源进行调整的技术手段,实现了对第一虚拟机的物理资源进行动态调整,避免了物理资源的浪费。
如图2所示,在本申请的第二实施例中,步骤S220具体还包括以下步骤:
步骤S2211:连续在第一预设时长内获取多组磁盘容量剩余率,并计算多组所述磁盘容量剩余率的平均磁盘容量剩余率;
在本实施例中,所述告警规则包括平均磁盘容量剩余率在第一预设时长内持续小于磁盘容量告警阈值。具体的,在第一虚拟机运行时,连续在第一预设时长内获取多组磁盘容量剩余率,对所获取的多组磁盘容量剩余率进行平均值计算,得到磁盘在第一预设时长内的平均磁盘容量剩余率,然后将平均磁盘容量剩余率作为评估是否增加磁盘数量的条件。举例说明,如第一预设时长为30s,每30s采集一次,持续采集5分钟,获得10组磁盘容量剩余率,记为b1,b2,....,b10,则平均磁盘容量剩余率为(b1+b2+....+b10)/10。
步骤S2212:若所述平均磁盘容量剩余率小于磁盘容量告警阈值,则为第一虚拟机的磁盘扩展第一数量的磁盘容量。
具体的,如果在第一预设时长内获取的多组磁盘容量剩余率的平均磁盘容量剩余率小于磁盘容量告警阈值,则为第一虚拟机的磁盘扩展第一数量的磁盘容量。假设第一虚拟机原来磁盘容量为100G,第一数量为100G,扩展后的磁盘容量就有200G。其中,磁盘容量剩余率表示磁盘容量当前还有多少容量可以使用,例如,磁盘容量为10G,已经使用了8G,磁盘容量剩余率为20%,即当前仅有2G可以使用。需要说明的是,第一预设时长和磁盘容量告警阈值均是预先设定的,用户可自定义设定。
本实施例根据上述技术方案,由于采用了连续在第一预设时长内获取多组磁盘容量剩余率,并计算多组磁盘容量剩余率的平均磁盘容量剩余率,若平均磁盘容量剩余率小于磁盘容量告警阈值,则为第一虚拟机的磁盘扩展第一数量的磁盘容量的技术手段,通过增加磁盘数量的方式,实现了第一虚拟机磁盘容量的扩展。
进一步的,所述告警规则还包括平均内存使用率在第二预设时长内持续大于第一内存告警阈值、平均内存使用率在第三预设时长内持续大于第二内存告警阈值和平均内存使用率在第四预设时长内持续小于第三内存告警阈值。其中,第一内存告警阈值小于第二内存告警阈值,第一内存告警阈值也可称为第一上限内存告警阈,第二内存告警阈值也可称为第二上限内存告警阈,第三内存告警阈值也可称为下限内存告警阈值。
如图3所示,在本申请的第三实施例中,步骤S220具体还包括以下步骤:
步骤S2221:连续在第二预设时长内获取多组第一内存使用率,并计算多组所述第一内存使用率的第一平均内存使用率。
在本实施例中,在第一虚拟机运行时,连续在第二预设时长内获取多组内存使用率,本实施例中将内存使用率记为第一内存使用率,对所获取的多组第一内存使用率进行平均值计算,得到第一虚拟机的内存在第二预设时长内的第一平均内存使用率,然后将第一平均内存使用率作为评估是否进行内存容量第一次扩展的判断条件。其中,第一内存使用率表示第一虚拟机的内存当前被占用了多少,如第一虚拟机的内存容量为10G,当前已经占用了7G,则第一内存使用率为70%,即当前第一虚拟机的内存容量已有70%被占用,还剩余30%。
步骤S2222:若所述第一平均内存使用率大于第一内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第一扩展,若是,则为第一虚拟机的内存容量进行第一次扩展。
在本实施例中,如果第一虚拟机的内存在第二预设时长内的第一平均内存使用率大于第一内存告警阈值(第一上限内存告警阈),则判断第一虚拟机的内存容量是否需要进行第一次扩展。其中,可通过设定周期长度,基于周期长度持续采集多个周期的第一平均内存使用率,然后根据采集多个周期的第一平均内存使用率,并采用调整内存容量的扩展和回收的评估算法去判断第一虚拟机的内存容量是否需要进行第一次扩展,如果确定第一虚拟机的内存容量需要进行第一次扩展,则继续采用调整内存容量的扩展和回收的评估算法对第一虚拟机的内存容量进行第一次扩展。
具体的,首先按照第五预设时长为一个周期,持续采集n+i个周期的第一平均内存使用率,然后滤除n+i个周期中采集的最大第一平均内存使用率和最小第一平均内存使用率,并采用公式(1)计算n+i-2个周期中的所有第一平均内存使用率的平均值。
V1=(U11+U12+……+U1n+i-2)/(n+i-2) (1)
其中,U11+U12+……+U1n+i-2表示1~n+i个周期的第一平均内存使用率,V1表示n+i-2个周期中的所有第一平均内存使用率的平均值。
如果V1>T1,则判定第一虚拟机的内存容量需要进行第一扩展,并采用公式(2)计算扩展第一虚拟机的内存容量的第一扩展内存值。
R1e=Rc(U11+U12+......+U1n+i-2)/((n+i-2)((T1-L1)/2+L1))-Rc (2)
其中,T1表示第一内存告警阈值,Rc表示第一虚拟机当前已分配的内存值,R1e表示第一扩展内存值,L1表示第三内存告警阈值。
假设,T1=70%,第五预设时长为30s,n+i=7,第1周期-第7周期内采集的第一平均内存使用率分别是U11=75%,U12=80%,U13=78%,U14=76%,U15=68%,U16=60%,U17=81%,最大第一平均内存使用率是U17,最小第一平均内存使用率是U16,滤除U17和U16后,
V1=(75%+80%+78%+76%+68%)/5=75.4%>70%,即第一虚拟机的内存容量需要进行第一次扩展。如Rc=10G,L1=40%,第一虚拟机的内存容量的第一扩展内存值为:R1e≈3789M,实际扩展时R1e应该略大于3789M。
本实施例根据上述技术方案,由于采用了连续在第二预设时长内获取多组第一内存使用率,并计算多组第一内存使用率的第一平均内存使用率,若第一平均内存使用率大于第一内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第一扩展,若是,则为第一虚拟机的内存容量进行第一次扩展的技术手段,实现了对第一虚拟机内存容量的扩展。
如图4所示,在本申请的第四实施例中,步骤S220具体还包括以下步骤:
步骤S2231:连续在第三预设时长内获取多组第二内存使用率,并计算多组所述第二内存使用率的第二平均内存使用率。
在本实施例中,在第一虚拟机运行时,连续在第三预设时长内获取多组内存使用率,本实施例中将内存使用率记为第二内存使用率,对所获取的多组第二内存使用率进行平均值计算,得到第一虚拟机的内存在第三预设时长内的第二平均内存使用率,然后将第二平均内存使用率作为评估是否进行内存容量第二次扩展的判断条件。其中,第二内存使用率表示第一虚拟机的内存当前占用了多少,如第一虚拟机的内存容量为10G,当前已经占用了8.5G,则第一内存使用率为85%,即当前第一虚拟机的内存容量还有15%没有被占用,已有85%被占用。
步骤S2232:若所述第二平均内存使用率大于第二内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第二扩展,若是,则为第一虚拟机的内存容量进行第二次扩展。
在本实施例中,如果第一虚拟机的内存在第三预设时长内的第二平均内存使用率大于第二内存告警阈值(第二上限内存告警阈),则判断第一虚拟机的内存容量是否需要进行第二次扩展。其中,可通过设定周期长度,基于周期长度持续采集多个周期的第二平均内存使用率,然后根据采集多个周期的第二平均内存使用率,并采用调整内存容量的扩展和回收的评估算法去判断第一虚拟机的内存容量是否需要进行第二次扩展,如果确定第一虚拟机的内存容量需要进行第二次扩展,则继续采用调整内存容量的扩展和回收的评估算法对第一虚拟机的内存容量进行第二次扩展。
具体的,首先按照第六预设时长为一个周期,持续采集n个周期的第二平均内存使用率,然后滤除n个周期中采集的最大第二平均内存使用率和最小第二平均内存使用率,并采用公式(3)计算n-2个周期中的所有第二平均内存使用率的平均值。
V2=(U21+U22+……+U2n-2)/(n-2) (3)
其中,U21+U22+……+U2n-2表示1~n-2个周期的第一平均内存使用率,V2表示n-2个周期中的所有第二平均内存使用率的平均值。
如果V2>T2,则判定第一虚拟机的内存容量需要进行第二扩展,并采用公式(4)计算扩展第一虚拟机的内存容量的第二扩展内存值;其中,T2表示第二内存告警阈值。
R2e=Rc(U21+U22+……+U2n-2)/((n-2)((T1-L1)/2+L1))-Rc (4)
其中,R2e表示第二扩展内存值。
假设,T2=85%,第六预设时长为20s,n=5,第1周期-第5周期内采集的第二平均内存使用率分别是U21=92%,U22=90%,U23=88%,U24=84%,U25=93%,最大第二平均内存使用率是U25,最小第二平均内存使用率是U24,滤除U25和U24后,V2=(92%+90%+88%)/3=90%>85%,即第一虚拟机的内存容量需要进行第二次扩展。如Rc=10G,L1=40%,第一虚拟机的内存容量的第二扩展内存值为:R2e≈6516M,实际扩展时R2e应该大于6516M。值得说明的是,V2>T2时表明第一虚拟机的内存占用已经很高,可以使用的内存已经严重不足,内存急需扩展。在采集第二平均内存使用率时,需要保持周期长度较短,即需设定第六预设时长小于第五预设时长。
本实施例根据上述技术方案,由于采用了连续在第三预设时长内获取多组第二内存使用率,并计算多组第二内存使用率的第二平均内存使用率,若第二平均内存使用率大于第二内存告警阈值,则判断第一虚拟机的内存容量是否需要进行第二扩展,若是,则为第一虚拟机的内存容量进行第二次扩展的技术手段,实现了对第一虚拟机内存容量的二次扩展。
如图5所示,在本申请的第五实施例中,步骤S220具体还包括以下步骤:
步骤S2241:连续在第四预设时长内获取多组第三内存使用率,并计算多组所述第三内存使用率的第三平均内存使用率。
在本实施例中,在第一虚拟机运行时,连续在第四预设时长内获取多组内存使用率,本实施例中将内存使用率记为第三内存使用率,对所获取的多组第三内存使用率进行平均值计算,得到第一虚拟机的内存在第四预设时长内的第三平均内存使用率,然后将第三平均内存使用率作为评估是否进行内存容量回收(也可称为缩小)的判断条件。其中,第三内存使用率表示第一虚拟机的内存当前被占用了多少,如第一虚拟机的内存容量为10G,当前已经占用了4G,则第三内存使用率为40%,即当前第一虚拟机的内存容量已有20%被占用,还有60%没有占用,也就是多余了60%。
步骤S2242:若所述第三平均内存使用率小于第三内存告警阈值,则判断第一虚拟机的内存容量是否需要进行回收,若是,则对第一虚拟机的内存容量进行回收。
在本实施例中,如果第一虚拟机的内存在第位预设时长内的第三平均内存使用率大于第三内存告警阈值(下限内存告警阈值),则判断第一虚拟机的内存容量是否需要进行回收。其中,可通过设定周期长度,基于周期长度持续采集多个周期的第三平均内存使用率,然后根据采集多个周期的第三平均内存使用率,并采用调整内存容量的扩展和回收的评估算法去判断第一虚拟机的内存容量是否需要进行回收,如果确定第一虚拟机的内存容量需要进行回收,则继续采用调整内存容量的扩展和回收的评估算法对第一虚拟机的内存容量进行回收。
具体的,首先按照第七预设时长为一个周期,持续采集n+i个周期的第三平均内存使用率,然后滤除n+i个周期中采集的最大第三平均内存使用率和最小第三平均内存使用率,并采用公式(5)计算n+i-2个周期中的所有第三平均内存使用率的平均值。
V3=(U31+U32+……+U3n+i-2)/(n+i-2) (5)
其中,U31+U32+……+U3n+i-2表示1~n+i个周期的第三平均内存使用率。
如果V3<L1且U31<T1,U32<T1,……,U3n+i-2<T1,则判定第一虚拟机的内存容量需要进行回收,并采用公式(6)计算回收第一虚拟机的内存容量的回收内存值;其中,V3表示n+i-2个周期中的所有第三平均内存使用率的平均值。
Rs=Rc-Rc(U31+U32+……+U3n+i-2)/((n+i-2)((T1-L1)/2+L1)) (6)
其中,Rs表示回收内存值。
假设,L1=40%,T1=70%,第七预设时长为30s,n+i=7,第1周期-第7周期内采集的第一平均内存使用率分别是U31=28%,U32=30%,U33=30%,U34=34%,U35=32%,U36=35%,U37=26%,最大第三平均内存使用率是U16,最小第三平均内存使用率是U17,滤除U16和U17后,
V3=(28%+30%+30%+35%+32%)/5=31%<40%,同时U31,U32,U33,U34,U35,U3和U37也分别小于T1,即第一虚拟机的内存容量需要进行回收。如Rc=10G,第一虚拟机的内存容量的回收内存值为:Rs≈4468M。
本实施例根据上述技术方案,由于采用连续在第四预设时长内获取多组第三内存使用率,并计算多组所述第三内存使用率的第三平均内存使用率,若所述第三平均内存使用率小于第三内存告警阈值,则判断第一虚拟机的内存容量是否需要进行回收,若是,则对第一虚拟机的内存容量进行回收的技术手段,实现了在第一虚拟机执行的流水线任务较少时,对第一虚拟机多余的内存容量进行回收处理,避免的内存资源浪费。
本申请提高了一种虚拟机回收方法,在申请的虚拟机回收方法实施例中,首先需要创建若干个第二虚拟机,通过第二虚拟机可以执行程序代码编译、程序代码检查、程序代码打包以及其他环境部署。具体的,第二虚拟机的创建包括以下步骤:
步骤a:创建第二配置文件。
创建用于创建第二虚拟机的第二配置文件,所述第二配置文件包括用于创建第二虚拟机的镜像文件、中央处理器(CPU)数量、内存容量、磁盘容量和删除第二虚拟机的信息。
步骤b:根据所述第二配置文件,创建第二虚拟机。
读取第二配置文件,通过第二配置文件中的镜像文件生成预设数量台的未配置完成的第二虚拟机;根据中央处理器数量、内存容量和磁盘容量为未配置完成的第二虚拟机配置应用时所需的虚拟物理资源。未配置完成的第二虚拟机的虚拟物理资源配置完成后,即第二虚拟机完成创建,第二虚拟机就可以运行使用。其中,读取第二配置文件后,也会获取删除第二虚拟机的信息,根据所述删除第二虚拟机的信息,可以确定当前创建的第二虚拟机是需要在执行完任务后进行删除的。
如图6所示,所述虚拟机回收方法,具体包括以下步骤:
步骤S310:在已创建的第二虚拟机上执行目标任务。
第二虚拟机创建完成后,可在已创建的第二虚拟机上执行目标任务。所述目标任务包括程序代码编译、程序代码检查、程序代码打包以及其他环境部署,也就是软件项目中的流水线任务,每台第二虚拟机执行相应的流水线任务。
步骤S320:监测第二虚拟机上执行的目标任务的任务状态是否为完成。
具体的,实时监测每台第二虚拟机执行的目标任务的任务状态是否为“完成”。所述任务状态包括目标任务的“完成”和“未完成”,第二虚拟机执行的目标任务完后,任务状态更新为“完成”;反之,任务状态显示为“未完成”。
步骤S330:若是,则删除目标任务的任务状态是完成的第二虚拟机。
如果监测到任何一台第二虚拟机执行的目标任务的任务状态更新为“完成”,即该第二虚拟机执行的目标任务已完成,则对完成目标任务的第二虚拟机进行删除,避免完成目标任务的第二虚拟机继续占用系统资源,从而实现了第二虚拟机资源的回收。
本实施例根据上述技术方案,由于采用在已创建的第二虚拟机上执行目标任务,监测第二虚拟机上执行的目标任务的任务状态是否为完成,若是,则删除目标任务的任务状态是完成的第二虚拟机的技术手段,实现了软件项目中对一直保留且不执行任务的第二虚拟机进行回收,有利于节约系统资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (3)

1.一种虚拟机资源调整方法,其特征在于,所述虚拟机资源调整方法,包括:
创建第一配置文件,并根据所述第一配置文件保留已创建的第一虚拟机;
判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整;
其中,所述物理参数信息包括平均磁盘容量剩余率和平均内存使用率;
所述告警规则包括:平均内存使用率在第二预设时长内持续大于第一内存告警阈值、平均内存使用率在第三预设时长内持续大于第二内存告警阈值和平均内存使用率在第四预设时长内持续小于第三内存告警阈值;
所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在所述第二预设时长内获取多组第一内存使用率,并计算多组所述第一内存使用率的第一平均内存使用率;
若所述第一平均内存使用率大于所述第一内存告警阈值,则按照第五预设时长为一个周期,持续采集n+i个周期的第一平均内存使用率;
滤除n+i个周期中采集的最大第一平均内存使用率和最小第一平均内存使用率,并采用第一公式计算n+i-2个周期中的所有第一平均内存使用率的平均值;所述第一公式为:V1=(U11+U12+……+U1n+i-2)/(n+i-2);
若所述V1>T1,则判定第一虚拟机的内存容量需要进行第一扩展,并采用第二公式计算扩展第一虚拟机的内存容量的第一扩展内存值;
所述第二公式为:
R1e=Rc(U11+U12+……+U1n+i-2)/((n+i-2)((T1-L1)/2+L1))-Rc
其中,U11+U12+……+U1n+i-2表示1~n+i个周期的第一平均内存使用率,V1表示n+i-2个周期中的所有第一平均内存使用率的平均值,T1表示第一内存告警阈值,Rc表示第一虚拟机当前已分配的内存值,R1e表示第一扩展内存值,L1表示第三内存告警阈值;
连续在所述第三预设时长内获取多组第二内存使用率,并计算多组所述第二内存使用率的第二平均内存使用率;
若所述第二平均内存使用率大于所述第二内存告警阈值,则按照第六预设时长为一个周期,持续采集n个周期的第二平均内存使用率;
滤除n个周期中采集的最大第二平均内存使用率和最小第二平均内存使用率,并采用第三公式计算n-2个周期中的所有第二平均内存使用率的平均值;所述第三公式为:V2=(U21+U22+……+U2n-2)/(n-2);
若所述V2>T2,则判定所述第一虚拟机的内存容量需要进行第二扩展,并采用第四公式计算扩展所述第一虚拟机的内存容量的第二扩展内存值;
所述第四公式为:
R2e=Rc(U21+U22+……+U2n-2)/((n-2)((T1-L1)/2+L1))-Rc
其中,U21+U22+……+U2n-2表示1~n-2个周期的第一平均内存使用率,T2表示第二内存告警阈值,V2表示n-2个周期中的所有第二平均内存使用率的平均值,R2e表示第二扩展内存值;
连续在所述第四预设时长内获取多组第三内存使用率,并计算多组所述第三内存使用率的第三平均内存使用率;
若所述第三平均内存使用率小于所述第三内存告警阈值,则按照第七预设时长为一个周期,持续采集n+i个周期的第三平均内存使用率;
滤除n+i个周期中采集的最大第三平均内存使用率和最小第三平均内存使用率,并采用第五公式计算n+i-2个周期中的所有第三平均内存使用率的平均值;所述第五公式为:V3=(U31+U32+……+U3n+i-2)/(n+i-2);
若所述V3<L1且U31<T1,U32<T1,……,U3n+i-2<T1,则判定所述第一虚拟机的内存容量需要进行回收,并采用第六公式计算回收所述第一虚拟机的内存容量的回收内存值;
所述第六公式为:
Rs=Rc-Rc(U31+U32+……+U3n+i-2)/((n+i-2)((T1-L1)/2+L1));
其中,U31+U32+……+U3n+i-2表示1~n+i个周期的第三平均内存使用率,V3表示n+i-2个周期中的所有第三平均内存使用率的平均值,Rs表示回收内存值。
2.如权利要求1所述的方法,其特征在于,所述第一配置文件包括保留第一虚拟机的信息、调整内存容量的扩展和回收的评估算法、增加的磁盘容量的第一数量。
3.如权利要求2所述的方法,其特征在于,所述告警规则还包括平均磁盘容量剩余率在第一预设时长内持续小于磁盘容量告警阈值;
所述判断第一虚拟机运行时的物理参数信息是否满足告警规则,若是,则根据所述第一配置文件对第一虚拟机的物理资源进行调整,还包括:
连续在第一预设时长内获取多组磁盘容量剩余率,并计算多组所述磁盘容量剩余率的平均磁盘容量剩余率;
若所述平均磁盘容量剩余率小于磁盘容量告警阈值,则为第一虚拟机的磁盘扩展第一数量的磁盘容量。
CN202011275175.5A 2020-11-13 2020-11-13 虚拟机回收及其资源调整方法 Active CN112395045B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011275175.5A CN112395045B (zh) 2020-11-13 2020-11-13 虚拟机回收及其资源调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011275175.5A CN112395045B (zh) 2020-11-13 2020-11-13 虚拟机回收及其资源调整方法

Publications (2)

Publication Number Publication Date
CN112395045A CN112395045A (zh) 2021-02-23
CN112395045B true CN112395045B (zh) 2024-07-09

Family

ID=74600771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011275175.5A Active CN112395045B (zh) 2020-11-13 2020-11-13 虚拟机回收及其资源调整方法

Country Status (1)

Country Link
CN (1) CN112395045B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849270B (zh) * 2021-09-18 2024-01-12 苏州浪潮智能科技有限公司 编译虚拟机的资源分配方法、装置、存储介质及设备
CN115543862B (zh) * 2022-09-27 2023-09-01 超聚变数字技术有限公司 内存管理方法及相关装置
CN118331688B (zh) * 2024-06-13 2024-10-11 中国电信股份有限公司 内存调节方法及装置、计算机程序产品和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870341A (zh) * 2014-03-12 2014-06-18 汉柏科技有限公司 一种调整虚拟机资源的方法和系统
CN106598697A (zh) * 2016-11-14 2017-04-26 中国石油化工股份有限公司 一种虚拟机的虚拟内存动态调配方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1654648B1 (en) * 2003-08-14 2015-11-11 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US8799892B2 (en) * 2008-06-09 2014-08-05 International Business Machines Corporation Selective memory donation in virtual real memory environment
CN101986285B (zh) * 2010-11-03 2012-09-19 华为技术有限公司 虚拟机存储空间管理方法、系统及物理主机
CN103793278B (zh) * 2013-09-30 2017-04-26 中国电子设备系统工程公司研究所 一种基于虚拟器件运维规则的资源自动调整方法
CN103605613B (zh) * 2013-11-21 2016-09-21 中标软件有限公司 云计算环境中动态调整虚拟机内存的方法及系统
CN104301404B (zh) * 2014-09-29 2018-08-17 华为技术有限公司 一种基于虚拟机的调整业务系统资源的方法及装置
CN105740054A (zh) * 2016-02-01 2016-07-06 浪潮软件股份有限公司 一种虚拟机管理方法及装置
CN106407013B (zh) * 2016-09-30 2020-05-26 苏州浪潮智能科技有限公司 资源动态调度的方法、装置、资源调度服务器及系统
CN106445690A (zh) * 2016-10-17 2017-02-22 深圳市深信服电子科技有限公司 虚拟机资源的动态调配方法及装置
US10152387B1 (en) * 2016-12-23 2018-12-11 EMC IP Holding Company LLC Instant start of virtual machine from archive copy on backup media
CN107273212A (zh) * 2017-06-23 2017-10-20 郑州云海信息技术有限公司 一种动态分配内存的方法及系统
CN107479974A (zh) * 2017-08-09 2017-12-15 郑州云海信息技术有限公司 一种虚拟机调度方法及装置
CN108228348A (zh) * 2017-12-25 2018-06-29 顺丰科技有限公司 虚拟机资源分配调度方法、装置、存储介质及设备
CN108429815A (zh) * 2018-03-23 2018-08-21 重庆邮电大学 基于OpenStack的动态资源调度方法
CN110865881A (zh) * 2018-08-27 2020-03-06 中移(苏州)软件技术有限公司 一种资源调度的方法及装置
CN110389838B (zh) * 2019-07-24 2021-06-25 北京邮电大学 一种适用于虚拟资源的实时调度和在线迁移管控方法
CN110471769B (zh) * 2019-08-14 2022-03-29 中国工商银行股份有限公司 一种虚拟机的资源管理方法及装置
CN111880906A (zh) * 2020-08-03 2020-11-03 广东省华南技术转移中心有限公司 虚拟机高可用性管理方法、系统以及存储介质
CN111708614A (zh) * 2020-08-19 2020-09-25 鹏城实验室 一种虚拟机资源参数动态调节方法、系统及相关设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870341A (zh) * 2014-03-12 2014-06-18 汉柏科技有限公司 一种调整虚拟机资源的方法和系统
CN106598697A (zh) * 2016-11-14 2017-04-26 中国石油化工股份有限公司 一种虚拟机的虚拟内存动态调配方法

Also Published As

Publication number Publication date
CN112395045A (zh) 2021-02-23

Similar Documents

Publication Publication Date Title
CN112395045B (zh) 虚拟机回收及其资源调整方法
CN110597616B (zh) 一种神经网络的内存分配方法及装置
CN109739627B (zh) 任务的调度方法、电子设备及介质
CN103389926B (zh) 一种用于对虚拟磁盘进行备份的方法和装置
CN111767009A (zh) 磁盘清理方法、装置及设备
CN115297124B (zh) 一种系统运维管理方法、装置及电子设备
CN106874093B (zh) 基于用户画像计算目标人群的方法、计算引擎及计算设备
CN111625402A (zh) 数据恢复方法、装置、电子设备及计算机可读存储介质
CN109343859A (zh) 一种信息处理方法、装置及存储介质
CN107315652B (zh) 一种数据备份方法及云hdfs系统
CN109376137B (zh) 一种文件处理方法及装置
CN113157401A (zh) 一种Java虚拟机管理方法及装置
CN114115016A (zh) 一种数据处理方法、装置、设备及介质
CN112612605B (zh) 线程分配方法、装置、计算机设备和可读存储介质
CN110991983B (zh) 一种任务处理方法、装置、介质和设备
CN116483546A (zh) 分布式训练任务调度方法、装置、设备及存储介质
CN108021448B (zh) 一种内核空间的优化方法及装置
CN112559115A (zh) 一种容器镜像的删除方法、装置及设备
CN114598666A (zh) 资源处理方法及资源调度方法
CN113900856A (zh) 一种数据处理方法及相关设备
CN107122489B (zh) 一种数据对比方法及装置
CN112612606A (zh) 消息主题的处理方法、装置、计算机设备和可读存储介质
CN111124754A (zh) 一种数据恢复方法、装置、设备及介质
CN116701410B (zh) 数联网数据语用内存状态数据的存储方法及系统
CN112650573B (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