资源优化方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种资源优化方法及装置。
背景技术
平台即服务(Platform as a Service,简称为PaaS),是指在云计算基础设施上为用户提供应用软件部署和运行环境的服务,它通过互联网为用户提供的平台是一种应用开发与执行环境,根据一定规则开发出来的应用程序可以运行在这个环境之内。PaaS是互联网资源的聚合和共享,开发者可以灵活、充分利用服务提供商提供的应用能力,便捷地开发互联网应用。
由于基于云计算技术的PaaS平台能够为大量的互联网用户提供服务,并且为应用程序的执行弹性地提供所需的资源,平台中云服务器(也称虚拟机)可以部署多个用户的不同应用,每个应用都要占用资源,如果一个应用占用了大量的平台资源而导致其他应用不能正常运行,那么这个平台也是不能被接受的。所以,性能的隔离也是该平台不可或缺的一部分。平台在保证各业务畅通的同时要有效的优化资源使用,提高资源的利用率。
目前云服务器中要实现应用隔离,保证应用的性能和安全,需要对应用做一定的限制,并且分配资源的配额,要求应用的中央处理器(Central Processing Unit,简称为CPU)请求必须不能超过某个阀值。但是应用部署时预设的阀值不能根据应用的实际需要动态调配,应用之间也无法共享资源。
针对相关技术中PaaS平台的应用部署无法更改,导致资源利用率较低的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中PaaS平台的应用部署无法更改导致资源利用率较低的问题,本发明提供了一种资源优化方法及装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种资源优化方法,包括:获取PaaS平台内的各个应用需要占用系统资源的情况;根据获取的结果对所述各个应用的部署进行调整。
优选地,根据获取的结果对所述各个应用的部署进行调整包括:根据所述需要占用系统资源的情况将所述各个应用分配至多个虚拟机中。
优选地,根据所述需要占用系统资源的情况将所述各个应用分配至多个虚拟机中包括:将所述各个应用中需要占用系统资源的时间段不相同的多个应用分配至同一个虚拟机;和/或,将所述各个应用中需要占用系统资源的类型不相同的多个应用分配至同一个虚拟机。
优选地,根据获取的结果对所述各个应用的部署进行调整包括:对所述PaaS平台内的每个虚拟机设置第一阈值;在所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第一阈值的情况下,禁止对所述各个应用分配更多的系统资源。
优选地,对所述PaaS平台内的每个虚拟机设置第一阈值之后,还包括:对所述虚拟机设置第二阈值,并对所述各个应用中的每个应用分别设置第三阈值,其中,所述第二阈值小于所述第一阈值;在所述各个应用中的第一应用正在占用资源大于或等于所述第三阈值,且所述虚拟机的各个应用正在占用资源的总和大于或等于所述第二阈值的情况下,禁止对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源大于或等于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和小于所述第二阈值的情况下,允许对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源小于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第二阈值的情况下,允许对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源小于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第一阈值的情况下,禁止对所述第一应用分配更多的系统资源。
优选地,在获取PaaS平台内的各个应用需要占用系统资源的情况之后,还包括:根据所述获取的结果调整所述各个应用中的每个应用的第三阈值。
优选地,所述系统资源包括以下类型至少之一:CPU资源,内存资源,带宽资源,存储资源。
根据本发明的另一方面,提供了一种资源优化装置,包括:获取模块,用于获取PaaS平台内的各个应用需要占用系统资源的情况;调整模块,用于根据获取的结果对所述各个应用的部署进行调整。
优选地,所述调整模块包括:分配模块,用于根据所述需要占用系统资源的情况将所述各个应用分配至多个虚拟机中。
优选地,所述调整模块包括:第一设置模块,用于对所述PaaS平台内的每个虚拟机设置第一阈值;处理模块,用于在所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第一阈值的情况下,禁止对所述各个应用分配更多的系统资源。
优选地,所述调整模块还包括:第二设置模块,用于对所述虚拟机设置第二阈值,并对所述各个应用中的每个应用分别设置第三阈值,其中,所述第二阈值小于所述第一阈值;所述处理模块还用于:在所述各个应用中的第一应用正在占用资源大于或等于所述第三阈值,且所述虚拟机的各个应用正在占用资源的总和大于或等于所述第二阈值的情况下,禁止对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源大于或等于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和小于所述第二阈值的情况下,允许对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源小于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第二阈值的情况下,允许对所述第一应用分配更多的系统资源;和/或,在所述各个应用中的第一应用正在占用资源小于所述第三阈值,且所述虚拟机中的各个应用正在占用资源的总和大于或等于所述第一阈值的情况下,禁止对所述第一应用分配更多的系统资源。
通过本发明,采用获取PaaS平台内的各个应用需要占用系统资源的情况;根据获取的结果对各个应用的部署进行调整的方式,解决了相关技术中PaaS平台的应用部署无法更改导致资源利用率较低的问题,优化了共享资源的方式,提高了资源的利用率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的资源优化方法的流程图;
图2是根据本发明实施例的资源优化装置的结构框图;
图3是根据本发明实施例的调整模块的优选结构框图一;
图4是根据本发明实施例的调整模块的优选结构框图二;
图5是根据本发明实施例的调整模块的优选结构框图三;
图6是根据本发明实施例二的云服务器中应用部署及应用监控示意图;
图7是根据本发明实施例二的实现部署优化系统的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本实施例提供了一种资源优化方法,图1是根据本发明实施例的资源优化方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取PaaS平台内的各个应用需要占用系统资源的情况;
步骤S104,根据获取的结果对各个应用的部署进行调整。
本实施例通过上述步骤,根据获取到的各个应用所需的系统资源的情况,对各个应用的部署进行调整,从而实现了对应用部署的动态调整,解决了相关技术中PaaS平台的应用部署无法更改导致资源利用率较低的问题,优化了共享资源的方式,提高了资源的利用率。
步骤S102中的获取方式可以是实时获取,也可以采用周期性或者非周期性的方式进行获取,例如可以在设置的时间段的端点进行获取等。
作为一种优选实施方式,步骤S104中的调整方式可以是通过虚拟机来实现,即根据需要占用系统资源的情况将各个应用分配至多个虚拟机中。通过这种方式,能够实现应用隔离,保证应用的性能和安全。
例如,可以将各个应用中需要占用系统资源的时间段不相同的多个应用分配至同一个虚拟机;或者也可以将各个应用中需要占用系统资源的类型不相同的多个应用分配至同一个虚拟机,或者还可以将上述两种分配方式结合使用。通过这种方式,可以最大限度地利用一个虚拟机中的系统资源,从而进一步提高资源的利用率。
作为另一种优选实施方式,步骤S104中的调整方式也可以是通过设置阈值的方式来实现,例如可以对PaaS平台内的每个虚拟机设置第一阈值(又称为上限阈值),其中每个虚拟机的第一阈值可以相同,也可以不同,可以根据实际情况具体设置;在虚拟机中的各个应用正在占用资源的总和大于或等于第一阈值的情况下,禁止对各个应用分配更多的系统资源。通过这种方式,保证了虚拟机整体的性能和安全,避免了由于某些应用过多占用系统资源而导致系统整体瘫痪的问题。
本实施例中的系统资源可以包括以下类型中的一种或多种:CPU资源,内存资源,带宽资源,存储资源等。则上述通过设置阈值的方式进行调整的方式例如:在虚拟机中各个应用正在占用的内存资源的总和大于或等于第一阈值中的内存资源阈值的情况下,禁止对各个应用分配更多的系统资源;又例如,在虚拟机中各个应用正在占用的带宽资源的总和大于或等于第一阈值中的带宽资源阈值的情况下,禁止对各个应用分配更多的系统资源。
需要说明的是,本文中的的“第一”或者“第二”仅用于方便表述,并不作为对顺序先后或者特定个体的限定。
优选地,在对PaaS平台内的每个虚拟机设置第一阈值之后,还可以对该虚拟机设置第二阈值(又称为下限阈值),并对各个应用中的每个应用分别设置第三阈值(又称为资源上限阈值),其中,第二阈值小于第一阈值。通过这种方式,可以进一步对系统资源的利用方式进行优化,例如:
在各个应用中的第一应用正在占用资源大于或等于第三阈值,且虚拟机的各个应用正在占用资源的总和大于或等于第二阈值的情况下,禁止对第一应用分配更多的系统资源;
在各个应用中的第一应用正在占用资源大于或等于第三阈值,且虚拟机中的各个应用正在占用资源的总和小于第二阈值的情况下,允许对第一应用分配更多的系统资源;
在各个应用中的第一应用正在占用资源小于第三阈值,且虚拟机中的各个应用正在占用资源的总和大于或等于第二阈值的情况下,允许对第一应用分配更多的系统资源;
在各个应用中的第一应用正在占用资源小于第三阈值,且虚拟机中的各个应用正在占用资源的总和大于或等于第一阈值的情况下,禁止对第一应用分配更多的系统资源。
通过上述方式,可以在应用达到自身的第三阈值而虚拟机未达到第二阈值的情况下,继续为该应用分配系统资源,从而提高了系统资源使用的合理性;并且同时也保证了虚拟机整体的性能和安全。
优选地,还可以根据获取到的各个应用需要占用系统资源的情况对各个应用中的每个应用的第三阈值进行调整。从而根据应用在不同时间的资源需要来合理分配系统资源,提高系统资源的利用率。
对应于上述方法,本实施例中还提供了一种资源优化装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的资源优化装置的结构框图,如图2所示,该装置包括:获取模块22和调整模块24,下面对各个模块进行详细说明。
获取模块22,用于获取平台即服务PaaS平台内的各个应用需要占用系统资源的情况;调整模块24,与获取模块22相连,用于根据获取模块22获取的结果对各个应用的部署进行调整。
本实施例通过上述模块,根据获取模块22获取到的各个应用所需的系统资源的情况,使用调整模块24对各个应用的部署进行调整,从而实现了对应用部署的动态调整,解决了相关技术中PaaS平台的应用部署无法更改导致资源利用率较低的问题,优化了共享资源的方式,提高了资源的利用率。
图3是根据本发明实施例的调整模块24的优选结构框图一,如图3所示,该调整模块24可以包括:分配模块242,用于根据需要占用系统资源的情况将各个应用分配至多个虚拟机中。
图4是根据本发明实施例的调整模块24的优选结构框图二,如图4所示,该调整模块24可以包括:第一设置模块244,用于对PaaS平台内的每个虚拟机设置第一阈值;处理模块246,与第一设置模块244相连,用于在虚拟机中的各个应用正在占用资源的总和大于或等于第一阈值的情况下,禁止对各个应用分配更多的系统资源。
图5是根据本发明实施例的调整模块24的优选结构框图三,如图5所示,该调整模块24还可以包括:第二设置模块248,与处理模块246相连,用于对虚拟机设置第二阈值,并对各个应用中的每个应用分别设置第三阈值,其中,第二阈值小于第一阈值;在这种情况下,处理模块246还可以用于:在各个应用中的第一应用正在占用资源大于或等于第三阈值,且虚拟机的各个应用正在占用资源的总和大于或等于第二阈值的情况下,禁止对第一应用分配更多的系统资源;和/或,在各个应用中的第一应用正在占用资源大于或等于第三阈值,且虚拟机中的各个应用正在占用资源的总和小于第二阈值的情况下,允许对第一应用分配更多的系统资源;和/或,在各个应用中的第一应用正在占用资源小于第三阈值,且虚拟机中的各个应用正在占用资源的总和大于或等于第二阈值的情况下,允许对第一应用分配更多的系统资源;和/或,在各个应用中的第一应用正在占用资源小于第三阈值,且虚拟机中的各个应用正在占用资源的总和大于或等于第一阈值的情况下,禁止对第一应用分配更多的系统资源。
下面结合优选实施例进行说明,以下优选实施例结合了上述实施例及其优选实施方式。
实施例一
在本优选实施例中提供了一种PaaS平台部署应用所需使用资源的优化的方法和系统,该方法和系统可以应用于云计算领域。通过本优选实施例的方案,能够保证平台中应用安全和性能前提下,对应用占用资源数据实时采集和分析,动态调整资源阀值(也称阈值),并在平台的多个应用之间共享资源,提高资源的利用率。下面对本优选实施例中的方案进行详细说明。
本优选实施例提供的PaaS平台中资源优化的方法如下:首先对于每一个应用,部署时都设置一个初始的资源上限阀值,例如CPU20%,内存1G;对于每个云服务器的资源使用设置下限阀值和上限阀值,例如下限60%,上限CPU80%,内存10G。
对服务器中运行的应用程序进行监控,并且对服务器整体性能进行监控:
1、当单个应用占用资源没有达到应用的资源上限阀值,并且服务器整体性能没有达到设置的上限阀值,允许应用继续占用资源;
2、当单个应用占用的资源达到应用设置的资源上限阀值时,查看服务器整体性能,如果服务器整体性能没有达到设置的下限阀值,允许应用继续占用资源;
3、当单个应用占用的资源达到应用设置的资源上限阀值时,查看服务器整体性能,如果服务器整体性能达到设置的下限阀值,则不允许该应用继续占用资源。
此外,数据监控采集模块负责实时采集性能数据进行上报;规则引擎负责下发应用部署规则及应用阀值设置规则;数据分析模块负责分析各应用的性能数据,调用规则引擎中部署规则及应用阀值设置规则,可以动态调整应用在服务器中的部署和应用阀值。
在PAAS云服务中部署的各种应用对资源的占用时间要求不一样,或对不同资源的要求不一样的情况下,数据分析模块可以根据采集上报的数据分析应用占用资源的情况,规则引擎根据预定的规则调整应用部署的服务器。例如:把一天时间分为3个时间段,0:00-8:00;8:00-18:00;18:00-0:00,不同类型的应用在不同时间需要的资源不一样,则可以根据数据分析的结果,系统自动调整应用的部署,例如将不同时间段占用资源的应用部署在一台服务器中,各应用占用资源的时间不同,从而能够在某一个应用需要大量资源时,可以最大限量的使用系统资源,让服务器资源所有的时间都得到较高的利用率。如果仍然出现各应用在同一时间抢占资源的情况,则可以进一步通过每个应用的资源阀值限制,保证各个应用得到预定的资源,从而使得应用能够正常运行。
本优选实施例通过上述方法实现云服务器资源的高效利用,在保证业务通畅的情况下,实现PAAS云资源的优化利用。
实施例二
在本优选实施例中结合附图对应用部署优化方法及系统作进一步地详细说明。
图6是根据本发明实施例二的云服务器中应用部署及应用监控示意图,图7是根据本发明实施例二的实现部署优化系统的结构示意图。
如图6和7所示,当云服务器启用时,首先设置应用使用资源的下限阀值和上限阀值。当云服务器中初次部署一个应用,设置该应用的初始资源阀值,完成应用部署。
对云服务器中运行的应用程序的进程进行监控,以及对云服务器资源监控。
1、当单个应用占用资源没有达到应用的资源上限阀值,并且服务器整体性能没有达到设置的上限阀值,允许应用继续占用资源;
2、当单个应用占用的资源达到应用设置的资源上限阀值时,查看服务器整体性能,如果服务器整体性能没有达到设置的下限阀值,允许应用继续占用资源;
3、当单个应用占用的资源达到应用设置的资源上限阀值时,查看服务器整体性能,如果服务器整体性能达到设置的下限阀值,则不允许该应用继续占用资源;
云服务器中运行的数据采集模块72负责采集云服务器中运行的各个应用占用的资源情况,包括占用时间、CPU、内存、带宽和存储资源的使用情况,并将这些资源情况数据上报至数据分析模块74。
数据分析模块74可以对实时采集的数据进行分析,挖掘出应用部署规则所需要的参数,如CPU峰值,时间段内CPU使用平均值等。
规则引擎76可以根据数据分析的结果可以动态调整单个应用资源的阀值,优化应用所需资源,保证业务运行能高性能满足实际运行需求。
数据分析的结果符合规则引擎76中应用部署调整策略时,系统可以重新选择云服务器部署应用,满足不用业务的资源调配,提高云服务器的资源利用率。
综上所述,本优选实施例提供的PaaS平台资源优化的方法和系统,能够保证平台中应用安全和性能前提下,对应用占用资源数据实时采集和分析,动态调整资源阀值,并在平台的多个应用之间共享资源,提高资源的利用率。
这种PaaS平台资源优化的方法和系统简单有效,采用虚拟机与资源监控相结合的方式,首先在物理机上创建虚拟机,但不是大量的虚拟机,根据物理机的情况创建几个需要的虚拟机来区分不同种类的业务(又称应用)的;比如核心业务和非核心业务运行在不同的虚拟机上,非核心业务所在的虚拟机出现问题,不会影响到核心业务;核心业务所在的虚拟机可以运行多个业务,对虚拟机中运行的各个业务分配可使用的资源阀值,对业务的进程进行监控,CPU或内存使用达到阀值时报警,同时监控虚拟机的CPU和内存使用情况,业务的资源达到阀值,但虚拟机总体使用没有达到上限时,单个业务可以共享整个虚拟机的资源,但虚拟机资源达到上限时,业务占用的资源不能超过服务器的下限阀值,若超过阀值后发出的请求将会被暂停。这种方法实现简单,保证业务的畅通,有效合理的利用资源,提高对资源的利用率。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施例中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于光盘、软盘、硬盘、可擦写存储器等。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。