本发明实施例涉及云技术领域,尤其涉及一种自动调整云主机运行的方法及装置。
背景技术:
随着云技术的发展和推广,操作系统从以前直接运行在物理机器上到现在可以运行在云主机上,以前传统的互联网数据中心(Internet Data Center,IDC)服务器托管慢慢地转变为云服务器托管。
随着云平台技术的发展,以前是客户操作系统直接运行在物理裸机之上,到在现在的云平台的虚拟化技术下,客户操作系统则是运行在另外一个支持虚拟化的操作系统之上,不直接与物理逻辑对接。因为采用了虚拟化技术,在一台物理主机上,客户可以根据自己的需求分配不同内存大小配置的云主机。
目前客户购买的云主机内存大小可以根据自身需求定制并运行,当客户云主机在运行过程中由于各种原因,比如客户业务量上升等,导致云主机负荷较高,通常表现在CPU处理不及时和/或内存不足,而导致客户服务质量受影响。遇到这样的问题,客户可以选择重新购买CPU个数较多和/或内存较高配置的云主机,然后重新把现有服务迁移过去新的云主机,这样不仅时间较长,容易出错,还影响了客户服务的用户体验。
技术实现要素:
本发明实施例提出一种自动调整云主机运行的方法及装置,旨在解决如何根据云主机的当前运行情况自动调整云主机运行的问题。
第一方面,一种自动调整云主机运行的方法,所述方法包括:
获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
根据所述运行信息确定是否超过预设最大运行数据;
若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
优选地,所述方法还包括:
若所述运行信息不超过预设最大运行数据,则返回执行获取云主机的运行信息的步骤。
优选地,所述方法还包括:
若所述当前运行信息不低于预设最小运行数据,则返回执行每隔预设时间检测所述云主机的当前运行信息的步骤。
优选地,所述方法还包括:
在调整所述云主机当前的内存和/或CPU为预设初始值之后,返回执行获取云主机的运行信息的步骤。
优选地,所述接收物理主机分配的新的内存和/或新的CPU之前,还包括:
检测所述云主机所在的物理主机是否有空闲内存和/或空闲CPU。
优选地,所述接收物理主机分配的新的内存和/或新的CPU,包括:
若所述云主机所在的物理主机有空闲内存和/或空闲CPU,则获取所述空闲内存大小和/或空闲CPU个数;
从所述空闲内存大小和预设增加的内存大小中选择最小数值,和/或,从所述空闲CPU个数和预设增加的CPU个数中选择最小数值。
第二方面,一种自动调整云主机运行的装置,所述装置包括:
获取模块,用于获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
第一确定模块,用于根据所述运行信息确定是否超过预设最大运行数据;
接收模块,用于若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
第二确定模块,用于每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
调整模块,用于若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
优选地,所述装置还包括:
第一返回模块,用于若所述运行信息不超过预设最大运行数据,则返回获取模块的功能;
第二返回模块,用于若所述当前运行信息不低于预设最小运行数据,则返回执行第二确定模块的功能;
第三返回模块,用于在调整所述云主机当前的内存和/或CPU为预设初始值之后,返回执行获取模块的功能。
优选地,所述装置还包括:
检测模块,用于检测所述云主机所在的物理主机是否有空闲内存和/或空闲CPU。
优选地,所述接收模块,包括:
获取单元,用于若所述云主机所在的物理主机有空闲内存和/或空闲CPU,则获取所述空闲内存大小和/或空闲CPU个数;
选择单元,用于从所述空闲内存大小和预设增加的内存大小中选择最小数值,和/或,从所述空闲CPU个数和预设增加的CPU个数中选择最小数值。
本发明实施例提供一种自动调整云主机运行的方法及装置,若云主机的当前运行信息超过预设最大运行数据,则通过物理主机为所述云主机分配新的内存和/或新的CPU,并且每间隔预设时间检测所述云主机的当前运行信息,若低于预设最小运行数据,则将所述云主机当前的内存或者CPU调整为预设初始值,从而根据虚拟化技术中物理机可用CPU可以分配给云主机运行使用的特点,在云主机运行的过程中,当检测到云主机的CPU使用率较高时候,在有效CPU个数范围里面适当增加CPU个数,当检查到云主机CPU使用率下降时,则将CPU个数调整回初始个数,使客户可以顺利度过突发的业务量,为云客户带来了人性化的用户体验。
附图说明
图1是本发明实施例一提供的一种自动调整云主机运行的方法的流程示意图;
图2是本发明实施例二提供的一种自动调整云主机运行的方法的流程示意图;
图3是本发明实施例三提供的一种自动调整云主机运行的方法的流程示意图;
图4是本发明实施例四提供的一种自动调整云主机运行的方法的流程示意图;
图5是本发明实施例五提供的一种自动调整云主机运行的方法的流程示意图;
图6是本发明实施例六提供的一种自动调整云主机运行的方法的流程示意图;
图7是本发明实施例七提供的一种自动调整云主机运行的装置的功能模块示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各项步骤的顺序可以被重新安排。当其步骤完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种自动调整云主机运行的方法的流程示意图。该方法可以由自动调整云主机运行的的装置执行,其中该装置可由软件和/或硬件实现。如图1所示,该方法包括:
步骤101,获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
具体的,检测云主机的运行信息,该运行信息可以为内存使用率,或者CPU使用率。
步骤102,根据所述运行信息确定是否超过预设最大运行数据;
具体的,设置最大运行数据,该最大运行数据可以为云主机的内存最大使用率,或者云主机的CPU的最大使用率。将检测得到的云主机的内存使用率和预设的内存最大使用率进行对比,确定检测得到的云主机的内存使用率是否超过预设的内存最大使用率;或者,将检测得到的云主机的CPU使用率和预设的CPU最大使用率进行对比,确定检测得到的云主机的CPU使用率是否超过预设的CPU最大使用率。
步骤103,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
具体的,若确定云主机的内存使用率超过预设内存最大使用率,则通过物理主机向所述云主机分配新的内存;若确定云主机的CPU的使用率超过预设CPU最大使用率,则通过物理主机向所述云主机分配新的CPU。
步骤104,每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
具体的,在分配完新的内存或者新的CPU后,继续监测云主机当前运行的CPU的使用率是否低于预设的最小CPU的使用率,或者,在分配完新的CPU后,继续监测云主机当前运行的内存的使用率是否低于预设的最小内存的使用率。
步骤105,若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
具体的,若继续监测得到的云主机的当前内存使用率低于预设最小内存使用率,则将云主机的内存使用率调整为初始值;若继续监测得到的云主机的当前CPU使用率低于预设最小CPU使用率,则将云主机的CPU使用率调整为初始值。
本发明实施例提供一种自动调整云主机运行的方法,若云主机的当前运行信息超过预设最大运行数据,则通过物理主机为所述云主机分配新的内存和/或新的CPU,并且每间隔预设时间检测所述云主机的当前运行信息,若低于预设最小运行数据,则将所述云主机当前的内存或者CPU调整为预设初始值,从而根据虚拟化技术中物理机可用CPU可以分配给云主机运行使用的特点,在云主机运行的过程中,当检测到云主机的CPU使用率较高时候,在有效CPU个数范围里面适当增加CPU个数,当检查到云主机CPU使用率下降时,则将CPU个数调整回初始个数,使客户可以顺利度过突发的业务量,为云客户带来了人性化的用户体验。
实施例二
图2是本发明实施例二提供的一种自动调整云主机运行的方法的流程示意图。如图2所示,该方法包括:
步骤201,获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
步骤202,根据所述运行信息确定是否超过预设最大运行数据;
步骤203,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
步骤204,若所述运行信息不超过预设最大运行数据,则返回执行获取云主机的运行信息的步骤;
具体的,若检测得到的云主机当前内存使用率不超过预设最大运行的内存使用率,则返回继续执行获取云主机的运行信息的步骤;若检测得到的云主机当前CPU使用率不超过预设最大运行的CPU使用率,则返回继续执行获取云主机的运行信息的步骤。
步骤205,每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
步骤206,若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
本发明实施例提供一种自动调整云主机运行的方法,若所述运行信息不超过预设最大运行数据,则返回执行获取云主机的运行信息的步骤,从而可以实现周期性检测云主机运行信息的目的。
实施例三
图3是本发明实施例三提供的一种自动调整云主机运行的方法的流程示意图。如图3所示,该方法包括:
步骤301,获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
步骤302,根据所述运行信息确定是否超过预设最大运行数据;
步骤303,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
步骤304,每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
步骤305,若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值;
步骤306,若所述当前运行信息不低于预设最小运行数据,则返回执行每隔预设时间检测所述云主机的当前运行信息的步骤。
具体的,检测调整后的云主机的运行情况,若调整后的云主机的当前内存使用率不低于预设最小内存使用率,则继续检测调整后的云主机的当前内存使用率。若调整后的云主机的当前CPU使用率不低于预设最小CPU使用率,则继续检测调整后的云主机的当前CPU使用率。
本发明实施例提供一种自动调整云主机运行的方法,若所述当前运行信息不低于预设最小运行数据,则返回执行每隔预设时间检测所述云主机的当前运行信息的步骤,从而实现周期性检测调整后的云主机运行情况,能及时有效的避免调整后的云主机的运行情况不需要增加的CPU或者内存时而造成的CPU或者内存的浪费。
实施例四
图4是本发明实施例四提供的一种自动调整云主机运行的方法的流程示意图。如图4所示,该方法包括:
步骤401,获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
步骤402,根据所述运行信息确定是否超过预设最大运行数据;
步骤403,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
步骤404,每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
步骤405,若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
步骤406,在调整所述云主机当前的内存和/或CPU为预设初始值之后,返回执行获取云主机的运行信息的步骤。
具体的,在云主机将当前的内存或者CPU调整为预设初始值之后,则返回继续检测云主机的当前运行信息。
本发明实施例提供一种自动调整云主机运行的方法,在调整所述云主机当前的内存和/或CPU为预设初始值之后,返回执行获取云主机的运行信息的步骤,从而实现周期性检测云主机的运行信息,以便及时根据云主机的运行信息调整云主机的内存或者CPU的目的。
实施例五
图5是本发明实施例五提供的一种自动调整云主机运行的方法的流程示意图。如图5所示,该方法包括:
步骤501,检测所述云主机所在的物理主机是否有空闲内存和/或空闲CPU;
步骤502,获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
步骤503,根据所述运行信息确定是否超过预设最大运行数据;
步骤504,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
具体的,本发明是根据虚拟化技术中物理机可用CPU可以分配给云主机运行使用的特点,通过物理主机为云主机分配新的内存和/或新的CPU。
优选地,所述接收物理主机分配的新的内存和/或新的CPU,包括:
若所述云主机所在的物理主机有空闲内存和/或空闲CPU,则获取所述空闲内存大小和/或空闲CPU个数;
从所述空闲内存大小和预设增加的内存大小中选择最小数值,和/或,从所述空闲CPU个数和预设增加的CPU个数中选择最小数值。
具体的,先检测物理主机上的空闲内存的大小和空闲CPU个数的大小,从空闲内存的大小和预设增加的内存大小中选择最小数据,若空闲内存小于预设增加的内存大小,则为云主机分配空闲内存;若空闲内存大于预设增加的内存大小,则为云主机分配预设增加的内存大小。
步骤505,每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
步骤506,若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
本发明实施例提供一种自动调整云主机运行的方法,若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU,若所述云主机所在的物理主机有空闲内存和/或空闲CPU,则获取所述空闲内存大小和/或空闲CPU个数;从所述空闲内存大小和预设增加的内存大小中选择最小数值,和/或,从所述空闲CPU个数和预设增加的CPU个数中选择最小数值,从而实现为所述云主机分配有效的内存或者CPU,提高内存或者CPU的使用率。
实施例六
图6是本发明实施例六提供的一种自动调整云主机运行的方法的流程示意图。如图6所示,该方法包括:
云主机能够上调CPU个数VMCPUMax,比如VMCPUMax=2个核,代表可以为云主机的CPU增加最多2个核;
云主机CPU使用率阀值VMCPUMaxUsed,用于判断是否满足增加CPU个数条件,比如VMCPUMaxUsed=80%,则代表当云主机CPU使用率VMCPUUsed>=80%的时候满足增加CPU个数的条件;
云主机CPU使用率阀值VMCPUMinUsed,用于判断是否满足把CPU个数调整回初始个数,比如VMCPUMinUsed=50%,则代表当云主机CPU使用率VMCPUUsed<=50%的时候,可以把CPU个数设置会初始个数。
步骤601,检测到云主机当前CPU使用率VMCPUUsed>=VMCPUMaxUsed(80%),满足进入步骤602,不满足则继续检测;
步骤602,检测当前云主机所在物理机CPU空闲个数HostFreeCPU>0,满足则进入步骤603,不满足则进入步骤601;
步骤603,从HostFreeCPU和VMCPUMax中选择最小的数值min(HostFreeCPU,VMCPUMax),并把该数值用于增加云主机的CPU个数,进入步骤604;
步骤604,检测到云主机当前CPU使用率是否满足设置回CPU初始个数条件VMCPUUsed<=VMCPUMinUsed,满足进入步骤605,不满足则继续检测;
步骤605,将云主机CPU个数设置回初始个数VMCPU,重新进入步骤601继续检测。
本发明实施例提供一种自动调整云主机运行的方法,利用虚拟化技术,当检测到客户云主机CPU负荷较高时,自动为客户适当增加CPU个数,以保证客户服务质量,使客户可以顺利度过突发的业务量或者使客户有较为充足的时间去调整扩充服务能力,为云客户带来了人性化的用户体验。
实施例七
图7是本发明实施例七提供的一种自动调整云主机运行的装置的功能模块示意图。该装置可由软件和/或硬件实现,可通过执行自动调整云主机运行的方法来实现。如图7所示,该装置包括:
获取模块701,用于获取云主机的运行信息,所述运行信息包括内存使用率和/或CPU使用率;
第一确定模块702,用于根据所述运行信息确定是否超过预设最大运行数据;
接收模块703,用于若所述运行信息超过预设最大运行数据,则接收物理主机分配的新的内存和/或新的CPU;
第二确定模块704,用于每隔预设时间检测所述云主机的当前运行信息,确定所述当前运行信息是否低于预设最小运行数据;
调整模块705,用于若所述当前运行信息低于预设最小运行数据,则调整所述云主机当前的内存和/或CPU为预设初始值。
优选地,所述装置还包括:
第一返回模块,用于若所述运行信息不超过预设最大运行数据,则返回获取模块的功能;
第二返回模块,用于若所述当前运行信息不低于预设最小运行数据,则返回执行第二确定模块的功能;
第三返回模块,用于在调整所述云主机当前的内存和/或CPU为预设初始值之后,返回执行获取模块的功能。
优选地,所述装置还包括:
检测模块,用于检测所述云主机所在的物理主机是否有空闲内存和/或空闲CPU。
优选地,所述接收模块,包括:
获取单元,用于若所述云主机所在的物理主机有空闲内存和/或空闲CPU,则获取所述空闲内存大小和/或空闲CPU个数;
选择单元,用于从所述空闲内存大小和预设增加的内存大小中选择最小数值,和/或,从所述空闲CPU个数和预设增加的CPU个数中选择最小数值。
本发明实施例提供一种自动调整云主机运行的装置,若云主机的当前运行信息超过预设最大运行数据,则通过物理主机为所述云主机分配新的内存和/或新的CPU,并且每间隔预设时间检测所述云主机的当前运行信息,若低于预设最小运行数据,则将所述云主机当前的内存或者CPU调整为预设初始值,从而根据虚拟化技术中物理机可用CPU可以分配给云主机运行使用的特点,在云主机运行的过程中,当检测到云主机的CPU使用率较高时候,在有效CPU个数范围里面适当增加CPU个数,当检查到云主机CPU使用率下降时,则将CPU个数调整回初始个数,使客户可以顺利度过突发的业务量,为云客户带来了人性化的用户体验。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。