短信网关集群系统中的节点弹性分配方法及系统的制作方法

文档序号:7773302阅读:156来源:国知局
短信网关集群系统中的节点弹性分配方法及系统的制作方法
【专利摘要】本发明提供了一种短信网关集群系统中的节点弹性分配方法及系统,通过获取短信网关集群系统中当前所有业务节点服务器的业务数据信息进行业务节点的弹性分配,其中的业务数据信息包括CPU利用率、消息存储量、消息流速和预测消息量。利用本发明,能够在实时业务量和预测业务量的判断过程中,通过采样次数、采样间隔、历史数据等参数来控制弹性伸缩节点的频率,以提高集群节点服务器资源利用率,解决业务闲时服务器资源的利用问题,以及避免业务集中爆发时系统响应不及时的情况。
【专利说明】短信网关集群系统中的节点弹性分配方法及系统【技术领域】[0001]本发明涉及集群系统中服务器资源分配【技术领域】,更为具体地,涉及一种短信网 关集群系统中的节点弹性分配方法及系统。【背景技术】[0002]计算机集群系统通过一组松散集成的计算机软件和/或硬件连接起来高度紧密 地协作完成计算工作,一般情况下集群计算机比单个计算机,比如工作站或超级计算机性 能价格比要高得多,通常用来改进单个计算机的计算速度和/或可靠性。计算机集群系统 中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。[0003]在计算机集群系统中,一般包含一个主控节点和多个业务节点。主控节点管理集 群内所有业务节点,可以控制业务负载在节点之间的动态分配,以实现业务负载均衡。一般 情况下,集群中的所有业务节点功能一致,对外提供特定的应用服务,独立运行,可以承担 一定的业务负载,可水平扩展,在集群中有某个节点失效的情况下,失效节点上的任务会自 动转移到其他正常的节点上。[0004]对于整个集群系统来说,当实际应用业务量低于整个集群系统服务能力时,集群 系统能够正常工作;反之,则需要增加集群处理能力。一般采用水平扩展业务节点数量的方 式来解决集群性能问题。[0005]在目前的计算机集群系统应用过程中,常常为了满足峰值业务量而部署或配置相 应的资源共享池(资源包括网络,服务器,存储,应用软件,服务等)。而应用系统运行过程的 大部分时间里,实际承载的业务量远远没有达到资源利用率的警戒阀值(业界通用一般为 70%),或者经常处于低于资源利用率的空闲阀值(假设为10%)的状态。[0006]特别是在短信网关中,每天O点到7点的这个时间段内,短消息量比其他时间段少 很多,波谷值业务量一般只有波峰值的3%左右,如图1所示的某省一天中某些时间点的短 信业务量波峰图。而每年的节假日业务高峰期又会出现不同程度的业务激增,甚至可以达 到的日均量的10倍,如图2所示的某省一年中某些天的短信业务量波峰图。[0007]可见,按峰值业务量部署节点的方式造成了服务器资源的极大浪费,业务闲时多 余的服务器开销也消耗了大量的电能。[0008]为了解决这一问题,现有的技术中,通常采用服务器的CPU、内存、磁盘IO和网络 带宽等硬件和网络资源利用率的方法判断业务负载。但是,单纯采用其中的某些指标,在一 些特定的情况下,不足以确定当前系统是否能够满足业务需求。[0009]例如,CPU利用率高可能是因为当前操作系统正在进行系统资源整理,而不是业务 量升高导致的。因此,CPU高无法体现出业务量高,只要系统能够满足业务性能要求,CPU高 也可认为是一种常态。在短信网关集群系统应用中,通常采用预先申请固定大小和个数的 消息块内存空间的方法,以提高接收消息后系统响应速度,不必每次都申请内存,这样就无 法通过服务器内存利用率的方式判断业务负载。同样,在短信网关等实时的应用系统中,一 般采用内存存储消息块的方式,对磁盘IO利用率较低,所以也不能通过磁盘IO的方法来判断业务量。[0010]目前,集群内部的网络流量由于包含内部通讯过程,不能统计出业务节点对外提 供的真实网络流量,而集群外部的路由器等网络设备常常是与其他系统共用或者根本没有 权限去采集路由器信息,也就无法通过网络带宽利用率的方式统计业务负载。[0011]可以看出,现有技术中通过服务器硬件资源利用率的方法无法真实反映业务负载 情况或方法不适用于短信网关集群系统,而通过网络带宽利用率的方法则受限于集群内 部,只能通过集群外部统计,集群内部无法实现。
【发明内容】
[0012]鉴于上述判断系统业务量的方法中存在的问题,本发明的目的是提供一种基于服 务器CPU利用率、实时业务量和预测业务量的判断,来对短信网关集群系统中的节点进行 弹性分配的方法及系统。[0013]根据本发明的一个方面,提供了一种短信网关集群系统中的节点弹性分配方法, 包括:[0014]获取短信网关集群系统中当前所有业务节点服务器的业务数据信息,其中,所述 业务数据信息包括CPU利用率、消息存储量、消息流速和预测消息量;[0015]根据所述短信网关集群系统中当前的业务节点数量和所述业务数据信息进行业 务节点的弹性分配;其中,[0016]获取短信网关集群系统中当前所有业务节点服务器的一个时间点的业务数据信 息为一次样本采集;并且,在预置参数的样本连续采集结束后,[0017]如果当前业务节点服务器的CPU利用率大于警戒阀值,并且消息流速也大于最大 每秒消息流速的警戒阀值的次数超过规定次数;或者,[0018]如果当前业务节点服务器的消息存储量的利用率大于业务忙时系数的次数超过 规定次数;或者,[0019]如果当前业务节点服务器的预测消息量大于最大每秒消息流速的警戒阀值的次 数超过规定次数;则,[0020]进行增加一个业务节点的弹性扩展操作;以及[0021]如果当前业务节点服务器的CPU利用率小于空闲阀值,并且消息流速也小于最大 每秒消息流速的空闲阀值的次数超过规定次数;或者,[0022]如果当前业务节点服务器的消息存储量的利用率小于业务闲时系数的次数超过 规定次数;则,[0023]进行减少一个业务节点的弹性缩减操作。[0024]根据本发明的另一方面,提供了一种短信网关集群系统中的节点弹性分配系统, 包括:[0025]业务数据信息获取单元,用于获取短信网关集群系统中当前所有业务节点服务器 的业务数据信息,其中,所述业务数据信息包括CPU利用率、消息存储量、消息流速和预测 消息量;[0026]节点弹性分配单元,用于根据所述短信网关集群系统中当前的业务节点数量和所 述业务数据信息进行业务节点的弹性分配;其中,所述业务节点弹性分配单元包括:[0027]样本采集单元,用于获取短信网关集群系统中当前所有业务节点服务器的业务数 据信息,其中,一个时间点的业务数据信息为一次样本采集;[0028]弹性扩展单元,用于在预置参数的样本连续采集结束后,如果当前业务节点服务 器的CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数 超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率大于业务忙时系数 的次数超过规定次数;或者,如果当前业务节点服务器的预测消息量大于最大每秒消息流 速的警戒阀值的次数超过规定次数;则,进行增加一个业务节点的弹性扩展操作;以及[0029]弹性缩减单元,用于在预置参数的样本连续采集结束后,如果当前业务节点服务 器的CPU利用率小于空闲阀值,并且消息流速也小于最大每秒消息流速的空闲阀值的次数 超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率小于业务闲时系数 的次数超过规定次数;则,进行减少一个业务节点的弹性缩减操作。[0030]利用上述根据本发明的短信网关集群系统中的节点弹性分配方法及系统,可以在 实时业务量和预测业务量的判断过程中,通过采样次数、采样间隔、历史数据等参数来控制 弹性伸缩节点的频率,以提高集群节点服务器资源利用率,解决业务闲时服务器资源的利 用问题,以及避免业务集中爆发时系统响应不及时的情况。[0031]为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在 权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。 然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明 旨在包括所有这些方面以及它们的等同物。【专利附图】

【附图说明】[0032]通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面 理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:[0033]图1为某省一天中某些时间点的短信业务量波峰图;[0034]图2为某省一年中某些天的短信业务量波峰图;[0035]图3为现有的短信网关的业务流程示意图;[0036]图4为根据本发明实施例的短信网关集群系统中的节点弹性分配方法的流程图;[0037]图5为根据本发明实施例的短信网关集群系统中的节点弹性分配流程图;[0038]图6为根据本发明实施例的节点弹性扩展判断流程;[0039]图7为根据本发明实施例的节点弹性缩减判断流程;[0040]图8为根据本发明实施例的短信网关集群系统中的节点弹性系统的方框示意图。[0041]在所有附图中相同的标号指示相似或相应的特征或功能。【具体实施方式】[0042]在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐 述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。 在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。[0043]以下将结合附图对本发明的具体实施例进行详细描述。[0044]在短信网关集群系统中包含一个主控节点和多个业务节点,各个业务节点登陆主控节点注册后,对外提供服务,并实时统计本节点的业务数据,等待主控节点的采集指令, 业务节点之间属于平等关系。主控节点作为服务端,等待所有业务节点登陆,检查在线业务 节点的健康状态,并从所有业务节点采集服务器CPU利用率、消息存储量、消息流速等业务 数据。[0045]需要说明的是,在下面的表述中,“节点”、“业务节点”、“业务节点服务器”在短信 网关集群系统中表示相同的概念。[0046]图3示出了现有短信网关的业务流程。[0047]如图3所示,现有短信网关的业务流程主要包括MO (Mobile Originate,终端发 起)和MT (Mobile Terminated,终端终止)两类消息存储转发匹配流程。其中,消息存储量 表示当前网关系统中已接收但未发送出去的Μ0/ΜΤ消息数和已发送但未收到Μ0/ΜΤ状态报 告的消息数之和;消息流速表示当前网关系统中每秒进行消息和状态报告匹配的数量;预 测消息量表示根据以往的消息量所预测出的即将到来的某一时间点或者时间段的消息量, 在本发明中具体指根据历年节假日期间流速数据乘以每年业务量增长系数后所估算的当 年相应节假日的流速。[0048]主控节点得到这些实时业务数据后,就可以运用弹性伸缩算法持续的判断业务节 点是否需要进行弹性伸缩。弹性伸缩算法的理论依据是根据局部性原理,即,如果当前业务 繁忙,那么就认为最近的将来也会业务繁忙;如果当前业务空闲,那么就认为最近的将来也 会业务空闲。[0049]同时,由于弹性伸缩算法需要根据当前多次采集实时数据为依据进行判断,这就 可能造成弹性伸缩判断延迟,如果此时业务量激增,则集群系统可能会响应不及时,影响业 务。为防止业务激增而带来的问题,需要对节假日期间的消息量进行预测,以便提前增加节 点来满足业务需求。[0050]图4示出了根据本发明的短信网关集群系统中的节点弹性分配方法的流程。[0051]如图4所示,本发明提供的短信网关集群系统中的节点弹性分配方法包括如下步 骤:[0052]S410:获取短信网关集群系统中当前所有业务节点服务器的业务数据信息,其中 的业务数据信息包括CPU利用率、消息存储量、消息流速和预测消息量;[0053]S420:根据短信网关集群系统中当前的业务节点数量和上述获取的业务数据信息 进行业务节点的弹性分配。[0054]其中,以获取短信网关集群系统中当前所有业务节点服务器的一个时间点的业务 数据信息为一次样本采集。在预置参数的样本连续采集结束后,如果当前业务节点服务器 的CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数超 过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率大于业务忙时系数的 次数超过规定次数;或者,如果当前业务节点服务器的预测消息量大于最大每秒消息流速 的警戒阀值的次数超过规定次数;则,进行增加一个业务节点的弹性扩展操作。[0055]另外,如果当前业务节点服务器的CPU利用率小于空闲阀值,并且消息流速也小 于最大每秒消息流速的空闲阀值的次数超过规定次数;或者,如果当前业务节点服务器的 消息存储量的利用率小于业务闲时系数的次数超过规定次数;则,进行减少一个业务节点 的弹性缩减操作。[0056]具体地,作为示例,图5示出了一个根据本发明实施例的短信网关集群系统中的 节点弹性分配流程。[0057]如图5所示,在短信网关集群系统启动之后,首先设置集群内所有业务节点服务 器的最大消息存储量和每秒最大消息流速(步骤S501),以便作为后期进行业务节点弹性分 配的参考数据。后续的步骤包括:[0058]S520:在短信网关集群系统运行过程中,以规定的频率获取集群内当前所有节点 服务器的CPU利用率、消息存储量、消息流速和预测消息量;[0059]S530:如果当前业务节点数小于等于最少节点数要求,则本次节点弹性分配流程 结束;[0060]S540:如果当前业务节点数大于等于最多节点数要求,则本次节点弹性分配流程 结束;[0061]S550:如果根据算法判断当前需要进行弹性扩展,则增加一个业务节点,本次节点 弹性分配流程结束;[0062]S560:如果根据算法判断当前需要进行弹性缩减,并且减少一个节点后,剩余节点 能够正常处理业务,则减少一个业务节点,本次节点弹性分配流程结束。[0063]在短信网关集群系统的运行过程中,重复执行S520到S560,在实时业务量和预测 业务量的判断过程中,通过采样次数、采样间隔、历史数据等参数来,实现对短信网关集群 系统中当前业务节点服务器数量的弹性控制。[0064]在上述业务节点服务器数量的弹性控制过程中,关键在于业务节点服务器数量的 弹性伸展或者缩减的指标的判断,下面将以具体的公式更加详细地对本发明的判断指标进 行说明。[0065]首先,需要对公式中所可能涉及到的参数做出说明,具体如下:[0066]Y表示当前业务量下需要的业务节点数;[0067](η+1)表示当前用于生产的业务节点的数量及至少I个冗余节点;[0068]X表示动态增删业务节点的数量的判定结果,分别为1、_1或O ;[0069]M表示当前可用的业务节点总数;[0070]m表示数据样本连续采集次数,该参数控制着弹性伸缩节点的频率,范围可设置为 10到100次,优选取m为20次,采样间隔为30秒,即10分钟进行一次弹性伸缩节点的判 断;[0071]CPU表示业务节点服务器的CPU利用率;[0072]s表示节点消息存储量利用率。在本发明的一个具体实施例中,12G内存可预先申 请最大消息块数为1000万,通过已用消息块数除以最大消息块数即为消息存储量利用率;[0073]f表示节点当前每秒消息流速;[0074]F表示节点最大每秒消息流速;[0075]e表示节点预测每秒消息流速,根据历年节假日期间流速数据乘以每年业务量增 长系数后估算今年流速;[0076]a表示业务闲时系数,一般采用0.01到0.2之间,优选取a为0.1 ;[0077]b表示业务忙时系数,一般采用0.6到0.9之间,优选取b为0.7。[0078]本发明提供的弹性判断指标包括:[0079]弹性扩展指标1:在m次采集结束后,当节点CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数超过m*b次时,则进行弹性扩展操作。m[0080]
【权利要求】
1.一种短信网关集群系统中的节点弹性分配方法,包括:获取短信网关集群系统中当前所有业务节点服务器的业务数据信息,其中,所述业务数据信息包括CPU利用率、消息存储量、消息流速和预测消息量;根据所述短信网关集群系统中当前的业务节点数量和所述业务数据信息进行业务节点的弹性分配;其中,获取短信网关集群系统中当前所有业务节点服务器的一个时间点的业务数据信息为一次样本采集;并且,在预置参数的样本连续采集结束后,如果当前业务节点服务器的CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率大于业务忙时系数的次数超过规定次数;或者,如果当前业务节点服务器的预测消息量大于最大每秒消息流速的警戒阀值的次数超过规定次数;则,进行增加一个业务节点的弹性扩展操作;以及如果当前业务节点服务器的CPU利用率小于空闲阀值,并且消息流速也小于最大每秒消息流速的空闲阀值的次数超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率小于业务闲时系数的次数超过规定次数;则,进行减少一个业务节点的弹性缩减操作。
2.如权利要求1所述的短信网关集群系统中的节点弹性分配方法,其中,所述预置参数包括采样次数和采样间隔;所述样本连续采集次数的选取范围为10~100,所述采样间隔的取值范围为20~40秒。
3.如权利要求2所述的短信网关集群系统中的节点弹性分配方法,其中,在在预置参数的样本连续采集结束后,判断当前业务节点服务器的CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数超过规定次数的公式为:
4.如权利要求2所述的短信网关集群系统中的节点弹性分配方法,其中,在预置参数的样本连续采集结束后,判断当前业务节点服务器的消息存储量的利用率大于业务忙时系数的次数超过规定次数的公式为:
5.如权利要求2所述的短信网关集群系统中的节点弹性分配方法,其中,在预置参数的样本连续采集结束后,判断当前业务节点服务器的预测消息量大于最大每秒消息流速的警戒阀值的次数超过规定次数的公式为:其中,m表示样本连续采集次数,e,表示第i次样本采集时节点服务器的预测消息量, F表示节点服务器的最大每秒消息流速,b表示当前业务节点服务器业务忙时系数。
6.如权利要求2所述的短信网关集群系统中的节点弹性分配方法,其中,在预置参数的样本连续采集结束后,判断当前业务节点服务器的CPU利用率小于空闲阀值,并且消息流速也小于最大每秒消息流速的空闲阀值的次数超过规定次数的公式为:
7.如权利要求2所述的短信网关集群系统中的节点弹性分配方法,其中,在预置参数的样本连续采集结束后,判断当前业务节点服务器的消息存储量的利用率小于业务闲时系数的次数超过规定次数的公式为:
8.如权利要求1所述的短信网关集群系统中的节点弹性分配方法,其中,所述CPU利用率为当前业务节点服务器的CPU利用率;所述消息存储量表示当前短信网关集群系统中已接收但未发送出去的MO/MT消息数和已发送但未收到MO/MT状态报告的消息数之和;所述消息流速表示当前短信网关集群系统中每秒进行消息和状态报告匹配的数量;所述预测消息量表示根据历年节假日期间流速数据乘以每年业务量增长系数后所估算的当年相应节假日的流速。
9.如权利要求1所述的短信网关集群系统中的节点弹性分配方法,其中,在进行减少一个业务节点的弹性缩减操作之后,向当前短信网关集群系统内业务量最小的业务节点服务器发送停用指令,使所述业务量最小的业务节点服务器停止处理业务, 将已有业务推送给其他业务节点服务器,并从所述短信网关集群系统中退出。
10.一种短信网关集群系统中的节点弹性分配系统,包括:业务数据信息获取单元,用于获取短信网关集群系统中当前所有业务节点服务器的业务数据信息,其中,所述业务数据信息包括CPU利用率、消息存储量、消息流速和预测消息量;节点弹性分配单元,用于根据所述短信网关集群系统中当前的业务节点数量和所述业务数据信息进行业务节点的弹性分配;其中,所述业务节点弹性分配单元包括:样本采集单元,用于获取短信网关集群系统中当前所有业务节点服务器的业务数据信息,其中,一个时间点的业务数据信息为一次样本采集;弹性扩展单元,用于在预置参数的样本连续采集结束后,如果当前业务节点服务器的 CPU利用率大于警戒阀值,并且消息流速也大于最大每秒消息流速的警戒阀值的次数超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率大于业务忙时系数的次数超过规定次数;或者,如果当前业务节点服务器的预测消息量大于最大每秒消息流速的警戒阀值的次数超过规定次数;则,进行增加一个业务节点的弹性扩展操作;以及弹性缩减单元,用于在预置参数的样本连续采集结束后,如果当前业务节点服务器的 CPU利用率小于空闲阀值,并且消息流速也小于最大每秒消息流速的空闲阀值的次数超过规定次数;或者,如果当前业务节点服务器的消息存储量的利用率小于业务闲时系数的次数超过规定次数;则,进行减少一个业务节点的弹性缩减操作。
【文档编号】H04W72/12GK103561428SQ201310473712
【公开日】2014年2月5日 申请日期:2013年10月10日 优先权日:2013年10月10日
【发明者】高洋, 史正伟, 卫娜, 谈龙兵, 刘惠明, 周洋 申请人:东软集团股份有限公司, 中国移动通信集团河南有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1