CN1780265A - 消息系统的流量控制方法 - Google Patents
消息系统的流量控制方法 Download PDFInfo
- Publication number
- CN1780265A CN1780265A CN 200410094866 CN200410094866A CN1780265A CN 1780265 A CN1780265 A CN 1780265A CN 200410094866 CN200410094866 CN 200410094866 CN 200410094866 A CN200410094866 A CN 200410094866A CN 1780265 A CN1780265 A CN 1780265A
- Authority
- CN
- China
- Prior art keywords
- message
- state
- flow control
- flow
- control
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000005070 sampling Methods 0.000 claims abstract description 34
- 230000008569 process Effects 0.000 claims description 20
- 230000007704 transition Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 5
- 230000003044 adaptive effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 239000004973 liquid crystal related substance Substances 0.000 claims description 2
- 230000000593 degrading effect Effects 0.000 abstract 1
- 230000035772 mutation Effects 0.000 abstract 1
- 230000007246 mechanism Effects 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000008261 resistance mechanism Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001314 paroxysmal effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及消息系统的消息处理方法,公开了一种消息系统的流量控制方法,使得消息系统的综合处理能力能够被正确反映,并用于进行自适应的流量控制,各类系统资源得到完全利用,保证系统的健壮性,不受消息流突变的影响。这种消息系统的流量控制方法将消息进行分类,对不同类型的消息分别进行流量控制;通过采用消息处理时延来表征系统资源占用情况,且通过采样周期的统计来进行自适应调整资源占用指标,使得系统资源得到充分有效利用;根据资源占用指标进行状态机的状态转换,根据状态来实现流量控制的启动和解除,使得系统不受毛刺影响;采用时间片流量分配来进行流量控制;对消息簇给予预留流量,避免中途丢弃而严重影响服务质量的情况。
Description
技术领域
本发明涉及消息系统的消息处理方法,特别涉及消息系统的对消息流量的控制方法。
背景技术
信息时代的三大主要技术通信、计算机、控制(Communication ComputerControl,简称“3C”)中,无论是软件还是硬件系统,都普遍地采用了消息处理的服务机制,可以称之为消息系统。特别是在当今互联网发展迅速的时代,消息处理这样的服务机制显得更为重要,比如时下发展势头非常迅猛的互联网服务(Web Services)技术,将称为下一代主要网络技术支柱之一。而相应于消息系统产生的诸多技术问题也将称为业界普遍关注的焦点。其中流量控制即为消息系统的关键技术之一。
所谓消息系统是指能够处理各种请求消息并返回响应或结果的系统。而消息系统的流量控制,即系统在过载时对请求的消息有选择的处理,以维持服务的持续的一种必要措施。对于一个服务供应者来说,必须保证能持续的提供服务,而避免由于各种原因引起的服务堵赛。流量控制即能给消息系统提供一种对于消息流量过大而可能发生堵赛的预防机制。
消息系统的流量控制又称为过负荷控制,是设备自我保护基本手段之一。比如在阵发性的请求消息高峰时期,消息系统需要能够在自身允许的处理能力范围之内,尽可能的满足请求消息的服务,对超出自身能力范围之外的请求消息予以要求重发或丢弃处理。通过消息流量控制,能够使消息系统即使在大量消息的冲击下,保持健康的运行状态,始终提供最大能力的消息响应服务。
怎样提供确切的、有效的、健壮的流量控制机制是对于消息系统的服务质量、系统性能都是至关重要的,这又是由消息系统流量控制算法决定的。消息系统流量控制算法的关键在于如何确定启控的条件和门限。现阶段消息系统的流量控制算法对这个问题的解决还不够理想,不能充分利用消息系统的整体能力,同时决定起控条件和门限的参数不能适应硬件或软件配置的变化而变化,这使得系统管理非常繁杂。如何构建一个优秀的算法模型,能根据当前消息系统的综合处理能力自适应确定流控过程,做到在最恰当的时候进行消息流量控制,控制的程度最合适,从而使得系统性能最佳,是当前消息系统流量控制算法需要解决的课题。
这里所提出的自适应流量控制,其流量控制机制能够自动根据系统当前配置确定流控参数,并根据动态调整的门限决定是否采取流控措施,使得系统处理能力达到最佳的利用。
当前的消息系统流量控制方法均采用固定阈值判决丢弃机制。简单的说就是根据系统处理能力和实验统计情况来设定合适的阈值,然后在消息接收时根据阈值判断是否采取流量控制措施,在流控过程中,按照一定比例丢弃消息,该比例即为流控级别。而流量控制的主要指标是处理器(CPU)占用率,如果CPU占用率超过一定门限,即采取流控措施;而流控等级即为允许的消息流量,单位时间可以处理的消息量,该流控等级由当前消息请求量和CPU占用率的大小关系决定。
中国专利《码分多址蜂窝通信系统中过负荷控制的方法》(专利号:00127306)公开了一种码分多址移动通信系统中归属位置寄存器(HostLocation Register,简称“HLR”)对消息的过负荷控制方法,该方法根据CPU占用率来决定流控等级,分为三个级别:不采取流控、采取流控、消息全阻,其中消息全阻即系统不接收任何消息的状态,是在CPU完全占用的情况下发生的。下面给出该方法的主要步骤:
首先由HLR的前置机接收消息请求,所述前置机就是用于接收登记消息请求的,将需要处理的消息发送给处理器;
获取前置机当前的CPU占有率,并查表得到相应的流控等级;
获取处理器当前的CPU占有率,并查表得到相应的流控等级;
根据上述两个流控等级中最高的等级确定是否进行流量控制;
对于最低等级的流量控制,不拒绝任何消息,前置机将消息请求发送给处理机;
对于最高等级的流量控制,拒绝所有消息,不发送消息请求给处理机;
对于其他等级,根据等级高低决定拒绝消息的概率,并按照此概率丢弃一定的消息请求,不丢弃的则由前置机发送给处理机。
该方法仅仅根据CPU占用率来确定流量控制的阈值,并不能全面反映系统综合处理能力,事实上系统综合处理能力包含处理器、接口外围设备、外部存储器等各种资源的使用情况。
该方法采用固定的阈值,这样对于系统配置的变化无法必须重新进行配置,比如系统升级时处理器主频提高、硬盘速度加快、输入输出(I/O)速度变快等情况都无法适应,如果重新进行测试而更新阈值的话,必然带来巨大的维护工作量。
注意到,该方法的最高级别为消息全阻,此时虽然CPU被全部占用,但事实上,系统并不一定是没有继续处理消息的能力,相反CPU的完全占用反而说明系统资源利用率高。在实际应用中,首先,CPU被占用并不说明CPU不能在处理更多消息,很多情况下,CPU只是在等待I/O操作,而处于空闲状态,仍然能处理消息;其次,由于系统资源是多方面的,比如外围设备资源,CPU被完全利用时,外围设备仍然能够处理一些只需要外围资源的消息请求;这些情况下,系统都还有处理消息的能力,而该方法将所有消息都丢弃,这违背了流量控制提高服务质量的初衷。
另外,该方法在启动流量控制时,仅仅根据当前处理器资源利用情况进行判断,这将会对消息波动非常敏感,实际应用中,消息流往往会存在一些非常短的高峰,该时刻消息到达特别多,现有方法对于这样的毛刺没有缓冲的功能,这样的毛刺很可能导致系统强烈波动甚至瘫痪。
在实际应用中,上述方案存在以下问题:消息系统综合资源利用率低,不能有效进行流量控制,系统维护复杂、工作量大,系统升级不方便,消息全阻机制导致系统服务质量下降,对于消息流毛刺反应太强烈,系统稳定性降低。
造成这种情况的主要原因在于,由于该方法仅仅考虑CPU占用率来检测系统资源利用情况,不能反映系统综合处理能力,从而降低系统综合资源利用率;固定的阈值对于系统升级等情况不能适应,必须重新测试修改,大大增加系统维护复杂度;消息全阻机制仅仅根据CPU是否完全占用而将所有消息丢弃,不但不能达到真正的系统资源完全利用,而且直接降低了系统服务质量;该方法只考虑当前CPU占用情况,对于消息流高峰的反映强烈,导致系统不稳定。
发明内容
有鉴于此,本发明的主要目的在于提供一种消息系统的流量控制方法,使得消息系统的综合处理能力能够被正确反映,并用于进行自适应的流量控制,各类系统资源得到完全利用,保证系统的健壮性,不受消息流突变的影响。
为实现上述目的,本发明提供了一种消息系统的流量控制方法,包含以下步骤,
A将消息分类,消息类型数目可以为一类或任意多类;
B根据上一采样周期内的统计信息,自适应计算各类所述消息的资源占用指标;
C根据所述资源占用指标,判断是否进行流量控制,如果是则进入步骤D;
D所述流量控制过程中,通过在每个流量控制时间片内丢弃部分消息以维持消息流量不超过分配流量,控制消息流量。
其中,所述步骤B包含以下子步骤,
在上一采样周期内统计所述各类消息的平均处理时延;
根据所述平均处理时延和系统配置参数,自适应更新所述各类消息的资源占用指标。
根据以下法则自适应计算所述各类消息的资源占用指标:
当前采样周期的所述各类消息的资源占用指标,是由所述各类消息的所述平均处理时延,和上一采样周期的所述各类消息的资源占用指标,加权平均得到的;而且,
所述权重是随着系统对所有消息的总处理时间、所述消息类型数目、所述采样周期长度的变化自适应调整的。
所述步骤C包含以下子步骤,
采用状态机维护所述流量控制的状态,根据所述各类消息的资源占用指标进行状态转换,并根据所述状态决定启动所述流量控制或者解除所述流量控制。
所述状态机包含一个非流量控制态、一个流量控制态、一个预启控态、一个预解控态,系统初始状态为所述非流量控制态,所述状态机的状态转移过程包含以下子步骤:
C1当前状态为所述非流量控制态时,如果所述各类消息的资源占用指标超过启控门限,则下一状态为所述预启控态,如果所述各类消息的资源占用指标低于解控门限,则下一状态为所述非流量控制态;或者,
C2当前状态为所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则启动所述流量控制,且下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态;或者,
C3当前状态为所述流量控制态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态仍然为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述预解控态;或者,
C4当前状态为所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则解除所述流量控制,且下一状态为所述非流量控制态。
所述状态机还包含多个依次升级的预启控态;
所述步骤C1中,当前状态为所述非流量控制态时,如果所述各类消息的资源占用指标超过启控门限,则下一状态为第一个所述预启控态;
所述步骤C2中,当前状态为最后一个所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则启动所述流量控制,且下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态;并且,
所述状态机的状态转移过程还包含以下子步骤:
C5前状态为任一中间的所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态为下一个所述预启控态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态。
所述状态机还包含多个依次升级的预解控态;
所述步骤C3中,当前状态为所述流量控制态时,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为第一个所述预解控态;
所述步骤C4中,当前状态为最后一个所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则解除所述流量控制,且下一状态为所述非流量控制态;并且,
所述状态机的状态转移过程还包含以下子步骤:
C6当前状态为任一中间的所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为下一个所述预解控态。
所述启控门限和所述解控门限是根据当前系统资源状况和当前消息处理复杂度自适应设定的。
所述步骤D中的所述流量控制过程包含以下子步骤,
在每个所述流量控制时间片内,累计系统在当前流量控制时间片内所处理的所述各类消息的流量;
判断当前消息请求所属消息类型的流量是否已经超过所述分配流量,如果是,则丢弃所述当前消息请求,否则处理所述当前消息请求。
所述各类消息的所述分配流量是通过所述步骤B中得到的所述各类消息的资源占用指标和所述系统配置参数自适应计算得到的。
所述D中的所述流量控制过程还包含以下步骤,
根据系统处理过的消息簇的起始消息和结尾消息,记录系统当前处理的所述消息簇的数目;
在所述分配流量中预留相应的消息簇流量给所述消息簇的后续消息,在所述分配流量中减去所述消息簇流量;
在每个所述流量控制时间片内,确保处理所述消息簇的所述后续消息。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,考虑到消息种类不同,将消息进行分类,按照不同类型的消息分别进行流量控制;通过采用消息处理时延来表征系统资源占用情况,且通过采样周期的统计来进行自适应调整资源占用指标,使得系统资源得到充分有效利用;根据资源占用指标进行状态机的状态转换,根据状态来实现流量控制的启动和解除,使得系统不受毛刺影响;采用时间片流量分配来进行流量控制,丢弃部分消息以限制流量,另外还对消息簇给予预留流量,避免消息簇的中途丢弃而严重影响服务质量的情况。
这种技术方案上的区别,带来了较为明显的有益效果,即其中消息的分类检测和流量控制使得各种资源得到充分利用,提高系统资源利用率和完善消息处理能力;消息处理时延能充分反映当前时刻的系统负荷,与系统配置等情况无关,由此进行流量控制,能充分利用系统资源,降低系统维护复杂度,提高算法的适应性;状态机的采用提高了系统对消息流波动的缓冲能力,提高系统稳定性和鲁棒性;时间片流控的消息丢弃机制提高了流量控制的灵活性,消息簇的完整处理提高了系统服务质量。
附图说明
图1是根据本发明的一个实施例的消息系统的流量控制方法流程图;
图2是根据本发明的一个实施例的状态机判决流量控制的状态转移示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明首先按照消息所占用资源类型以及应用类型等进行分类,然后对每一类消息按照一定采样周期统计其消息处理时延,根据处理时延动态调整各类消息的权值,根据所有权值和当前系统处理能力,确定流量控制需求程度,并采用状态机方法对消息流量进行缓冲,根据状态机状态启动或解除流量控制,在流量控制的每个时间片内,根据给定的流量限制来丢弃过多的消息,并且对于消息组的情况,按照起始消息和后续消息的不同分别处理,保证消息组的正常服务。
本发明考虑到实际应用中,消息系统所处理的消息类型多种多样,而这些类型之间区别关系到资源分配问题,因此,在本发明的一个实施例中首先提出了对消息进行分类的方法,将输入的消息请求分为多种类型。分类的基准很多,可以根据实际项目的需求情况和配置情况选择分类的基准。
比如可以按照资源消耗模式进行分类,因为不同的消息完成的过程不同,相应的需要用到的系统资源也不同,比如有计算类的消息请求则主要占用CPU处理资源,而存储类的消息则主要占用存储器资源,另外一些外围设备也提供很多服务,相应的也存在很多专门使用该设备的消息请求。
另外还比如可以按照发起该消息请求的来源不同分类,比如移动通信系统中,有专门针对终端的消息请求,也有网络其他服务器的消息请求。
也可以按照消息的应用场景分类,由于不同的应用所需要的服务质量不同,因此有必要给出不同的流量空间,比如有连续性的语音通信相关的请求,也有数据业务的断续请求,还有控制信号的单条消息请求等。
在对消息进行分类以后,消息流量控制也可以根据不同类型的特点进行合适的流量控制。
在本发明的一个实施例中,为了避免固定阈值和僵化的流控,实现灵活的有效的系统资源占用情况的反映,采用消息处理时延来表征系统当前资源占用情况。由于,消息处理时延直接反映了系统当前消息处理负荷情况,且与系统配置和消息复杂度等无关。也就是说,对于高配置的系统,其处理能力提高,必然加快处理速度,因此消息处理时延必然下降,自动精确的反映了当前系统负荷在下降。外一种情况是,系统配置没有改变,而消息复杂度增加了,这样系统处理每个消息必然会需要更多时间,因此消息处理时延增大,自动反映当前系统负荷在加重。因此采用了消息处理时延之后,不仅仅是反映了消息流量的多少,而且正确反映了系统综合资源利用情况,即系统负荷的轻重,根据此来进行流量控制,将更加确切地调整消息流量,达到系统资源的最大利用。
在本发明的一个实施例中,还将时间分为多个采样周期,按采样周期为单位进行消息平均处理时延的统计,并且根据前一采样周期的统计结果来设定当前流量控制的标准。这样就形成了一个闭环反馈的机制,使得系统能够完全跟随实际情况进行及时的流量控制,从而提高系统灵活性。而在得到上一采样周期的统计信息后,还需要进行自适应的调整当前采样周期说所需要的流控指标,并根据这一指标判断是否进行流量控制。如果设计自适应调整机制和流控指标的计算方法将是决定流控方法性能的关键因素之一。
在本发明的一个实施例中,采用各类消息对应的资源占用指标来确定流控是否进行。该资源占用指标主要是根据消息平均处理时延来计算的,在此基础上还将根据一些系统配置情况进行适当调整。下面给出资源占用指标的计算方法:将上一采样周期所采用的资源占用指标,即原来的资源占用指标,和上一采样周期所统计得到的消息处理时延,这两个值进行加权平均,更新得到本采样周期的资源占用指标,即新的资源占用指标。当然,各类消息的资源占用指标在系统启动时需要配置一个初始值。之后,在每个采样周期都会根据最新系统消息处理情况的统计信息来自适应的调整。这样才能精确反映系统负荷情况,并及时采取流控等有效措施。
在本发明的一个较佳实施例中,还根据系统在整个采样周期内对所有消息的处理时间,以及消息类型数目、采样周期长度等系统参数,来调整上述由原先资源占用指标和消息处理时延加权平均求新的资源占用指标的权值。下面给出本发明的一个实施例的各类消息的资源占用指标计算公式:
Pmsg[i]=(Pmsg[i]*(100-Factor)+ProcessAverage[i]*Factor)/100,其中0<=i<=nType。
其中,Pmsg[i]为第i类消息的资源占用指标,等号左侧为新的值,右侧为原先的值;ProcessAverage[i]为第i类消息在上个采样周期内的平均消息处理时延。nType为消息类型的总数。Factor为加权因子,取值0到100。可见因子Factor越大则调整时对原先值的更新越大。
加权因子的计算公式为:
Factor=ConvertFactor*(1+TotleTime/(Ts*nType))。
其中ConvertFactor为基本加权因子,取值在0到50。TotleTime为系统在上个采样周期内总的消息处理时间。Ts为采样周期的长度。
可见上式计算得到的因子值在0到100之间。且可以看出以下规律,即当消息没有分类,或只有一类时,nType为1,此时加权因子在一倍的基本加权因子到两倍的基本加权因子之间随着总处理时间的增加而增加。而当消息分类数目增多后,加权因子的值会变小,直到等于基本加权因子。
上述规则是根据实际经验制定的,这样调整会使得流控效果达到最佳。在本发明的一个实施例中根据实际经验取值为10。
根据各类消息的资源占用指标和设定的门限即可判断是否需要进行流量控制。在本发明的一个实施例中,将各类消息的资源占用指标求和,然后与预先设定的启控门限和解控门限比较,如果高于启控门限,则启动流量控制,低于解控门限,则解除流量控制。
在本发明的一个较佳实施例中,所述启控门限和解控门限是根据当前系统配置情况而自适应调整的。
在本发明的另一个较佳实施例中,根据各类消息的资源占用模式将其资源占用指标加权求和,然后在进行判断是否进行流量控制。
在本发明的较佳一个实施例中,为了避免系统受到消息流高峰等毛刺的影响而变得不稳定,采用的状态缓冲的技术来进行流控的启动和解除,即采用多个状态的转换来稳定流控开关对于毛刺的反应。采用状态机即可实现状态转换。各个状态相当于记录了消息流高峰的长度,如果消息流高峰足够长,则能使得状态机到达启动流控状态,从而进行流量控制,同理实现解除流控。
流量控制的实现方法对整个系统过负荷控制性能的影响也是关键的。在本发明的一个实施例中,时间片分割的方法实现更加精确的流量控制。即将一个采样周期分为多个流量控制时间片,每个时间片内实现单独的流量控制,即根据分配的流量来丢弃部分消息。
在本发明的一个较佳实施例中,考虑到经常会有消息簇,即多条消息连续发送,而且是共同完成一个任务,这种消息簇如果有一条消息未被处理,即相当于所有消息未被处理,因此如果消息系统在处理多条某一消息簇的消息之后,因为流量控制而丢弃了其中一条消息,则将大大降低系统服务质量,降低消息处理效率。基于此,采用了消息簇流量预留的方法,将每个时间片内的分配流量中预留一部分流量专门给可能接收到的消息簇的后续消息使用。因此系统还需要一直记录当前正在处理的消息簇的数目,每处理一个消息簇的起始消息则该消息簇数目加一,没完成一个消息簇的结尾消息,则该消息簇数目减一,这样该消息簇并可真实反映当前系统正在处理过程中的消息簇。如果一个流量控制时间片足够短,不妨假设该时间片内每个消息簇只可能收到一条后续消息,这样预留的消息簇最大流量即可为当前消息簇数目的相应消息数。
下面结合图1说明本发明的一个实施例中的消息系统流量控制方法总体流程。
在一个采样周期开始时,进入步骤101,统计上一采样周期内各类消息的平均处理时延。在实际应用中,可以采用对每个处理的消息打两个时间戳的方法进行统计,即消息到达时打一个时间戳,消息处理完成时打一个时间戳,然后两个时间戳相减即为消息处理时延,将同一类消息的所有处理时延求平均即为平均消息处理时延。
接着进入步骤102,自适应的调整资源占用指标,根据消息处理时延来更新原先的资源占用指标。更新的方法和计算公式前面已经详细描述。
接着进入步骤103,根据计算得到的资源占用指标来驱动状态机的状态转移。根据状态可以判断是否启动流量控制或者解除流量控制。
接着进入步骤104,判断是否需要流量控制,如果在流量控制状态下,这进入步骤105,否则只需要按照正常情况接收处理消息请求。
在步骤105中,将本采样周期分为多个流量控制时间片,每个时间片开始后,就累计各类消息的处理过的消息流量。
接着进入步骤106中,在每个新的消息请求到达时,判断是否该类消息的累计流量是否以及超过分配的流量,如果是则丢弃该消息请求,否则处理该消息请求,并继续累计。这里面还可以加入对于消息簇的处理机制。
在一个流量控制时间片结束后,进入步骤107中,判断当前采样周期是否结束,如果是,则结束当前采样周期的流控流程,否则返回到步骤105继续进行下一个流量控制时间片的流量控制。
最后,结合图2详细说明在本发明的一个实施例中所采用的状态机流控状态转移过程。
采用多个缓冲态实现对消息流波动的缓冲功能,即n个预启控态和m个预解控态,当启动流量控制后即进入流量控制态,简称流控态,当解除流量控制后,即进入非流量控制态,简称非流控态。而每次启控条件满足,即将状态向流控态推进一步,直到连续多个周期都满足启控条件,则状态经由所有预启控态到达流控态,此时系统也发出启控命令;反之亦然,当多次解控条件满足后,状态即经由所有预解控态,到达非流控态,同时系统发出解控命令。而在状态向流控态和非流控态推进的过程中,如果一旦出现相反的条件,即在任意预启控态,如果满足解控条件,状态即回到非流控态;反之,在任意预解控态,如果满足启控条件,则状态马上回到流控态。
下面给出详细的状态转移规则,首先在系统初始状态为非流控态,此后,在每一个采样周期的起点根据计算得到的各类消息的资源占用指标进行启控条件和解控条件的判断,并进行相应的状态转移:
当前状态为所述非流量控制态时,如果资源占用指标超过启控门限,则下一状态为预启控态1,如果资源占用指标低于解控门限,则下一状态仍然为非流控态;
当前状态为任一中间的预启控态i时,如果资源占用指标超过启控门限,则下一状态为下一个预启控态i+1,如果资源占用指标低于解控门限,则下一状态为非流控态;
当前状态为最后的预启控态n时,如果资源占用指标超过启控门限,则启动流量控制,且下一状态为流控态,如果资源占用指标低于解控门限,则下一状态为非流控态;
当前状态为流控态时,如果资源占用指标超过启控门限,则下一状态仍然为流控态,如果资源占用指标低于解控门限,则下一状态为预解控态1;
当前状态为任一中间的预解控态j时,如果资源占用指标超过启控门限,则下一状态为流控态,如果资源占用指标低于解控门限,则下一状态为下一个预解控态j+1;
当前状态为最后的预解控态m时,如果资源占用指标超过启控门限,下一状态为流控态,如果资源占用指标低于解控门限,则解除流量控制,且下一状态为非流控态。
可见,上述多个预启控态和预解控态的缓冲起到了过虑毛刺的作用,很好的提高了系统的稳定性。一般的设置预解控态的个数要多于预启控态的个数。
熟悉本领域的技术人员可以理解,上述消息系统的流量控制方法中所涉及的具体参数,如自适应调整加权因子Factor的计算公式等,可以在遵循发明目的原则的前提下根据实际情况变化,而不影响本发明的实质和范围。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
Claims (11)
1.一种消息系统的流量控制方法,其特征在于,包含以下步骤,
A将消息分类,消息类型数目可以为一类或任意多类;
B根据上一采样周期内的统计信息,自适应计算各类所述消息的资源占用指标;
C根据所述资源占用指标,判断是否进行流量控制,如果是则进入步骤D;
D所述流量控制过程中,通过在每个流量控制时间片内丢弃部分消息以维持消息流量不超过分配流量,控制消息流量。
2.根据权利要求1所述的消息系统的流量控制方法,其特征在于,所述步骤B包含以下子步骤,
在上一采样周期内统计所述各类消息的平均处理时延;
根据所述平均处理时延和系统配置参数,自适应更新所述各类消息的资源占用指标。
3.根据权利要求2所述的消息系统的流量控制方法,其特征在于,根据以下法则自适应计算所述各类消息的资源占用指标:
当前采样周期的所述各类消息的资源占用指标,是由所述各类消息的所述平均处理时延,和上一采样周期的所述各类消息的资源占用指标,加权平均得到的;而且,
所述权重是随着系统对所有消息的总处理时间、所述消息类型数目、所述采样周期长度的变化自适应调整的。
4.根据权利要求1所述的消息系统的流量控制方法,其特征在于,所述步骤C包含以下子步骤,
采用状态机维护所述流量控制的状态,根据所述各类消息的资源占用指标进行状态转换,并根据所述状态决定启动所述流量控制或者解除所述流量控制。
5.根据权利要求4所述的消息系统的流量控制方法,其特征在于,所述状态机包含一个非流量控制态、一个流量控制态、一个预启控态、一个预解控态,系统初始状态为所述非流量控制态,所述状态机的状态转移过程包含以下子步骤:
C1当前状态为所述非流量控制态时,如果所述各类消息的资源占用指标超过启控门限,则下一状态为所述预启控态,如果所述各类消息的资源占用指标低于解控门限,则下一状态为所述非流量控制态;或者,
C2当前状态为所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则启动所述流量控制,且下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态;或者,
C3当前状态为所述流量控制态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态仍然为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述预解控态;或者,
C4当前状态为所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则解除所述流量控制,且下一状态为所述非流量控制态。
6.根据权利要求5所述的消息系统的流量控制方法,其特征在于,所述状态机还包含多个依次升级的预启控态;
所述步骤C1中,当前状态为所述非流量控制态时,如果所述各类消息的资源占用指标超过启控门限,则下一状态为第一个所述预启控态;
所述步骤C2中,当前状态为最后一个所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则启动所述流量控制,且下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态;并且,
所述状态机的状态转移过程还包含以下子步骤:
C5当前状态为任一中间的所述预启控态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态为下一个所述预启控态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为所述非流量控制态。
7.根据权利要求6所述的消息系统的流量控制方法,其特征在于,所述状态机还包含多个依次升级的预解控态;
所述步骤C3中,当前状态为所述流量控制态时,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为第一个所述预解控态;
所述步骤C4中,当前状态为最后一个所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则解除所述流量控制,且下一状态为所述非流量控制态;并且,
所述状态机的状态转移过程还包含以下子步骤:
C6当前状态为任一中间的所述预解控态时,如果所述各类消息的资源占用指标超过所述启控门限,则下一状态为所述流量控制态,如果所述各类消息的资源占用指标低于所述解控门限,则下一状态为下一个所述预解控态。
8.根据权利要求5至7中任一项所述的消息系统的流量控制方法,其特征在于,所述启控门限和所述解控门限是根据当前系统资源状况和当前消息处理复杂度自适应设定的。
9.根据权利要求1所述的消息系统的流量控制方法,其特征在于,所述步骤D中的所述流量控制过程包含以下子步骤,
在每个所述流量控制时间片内,累计系统在当前流量控制时间片内所处理的所述各类消息的流量;
判断当前消息请求所属消息类型的流量是否已经超过所述分配流量,如果是,则丢弃所述当前消息请求,否则处理所述当前消息请求。
10.根据权利要求9所述的消息系统的流量控制方法,其特征在于,所述各类消息的所述分配流量是通过所述步骤B中得到的所述各类消息的资源占用指标和所述系统配置参数自适应计算得到的。
11.根据权利要求9所述的消息系统的流量控制方法,其特征在于,所述D中的所述流量控制过程还包含以下步骤,
根据系统处理过的消息簇的起始消息和结尾消息,记录系统当前处理的所述消息簇的数目;
在所述分配流量中预留相应的消息簇流量给所述消息簇的后续消息,在所述分配流量中减去所述消息簇流量;
在每个所述流量控制时间片内,确保处理所述消息簇的所述后续消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410094866XA CN100518149C (zh) | 2004-11-17 | 2004-11-17 | 消息系统的流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200410094866XA CN100518149C (zh) | 2004-11-17 | 2004-11-17 | 消息系统的流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1780265A true CN1780265A (zh) | 2006-05-31 |
CN100518149C CN100518149C (zh) | 2009-07-22 |
Family
ID=36770380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200410094866XA Expired - Fee Related CN100518149C (zh) | 2004-11-17 | 2004-11-17 | 消息系统的流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100518149C (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008028418A1 (fr) * | 2006-09-06 | 2008-03-13 | Huawei Technologies Co., Ltd. | Procédé et système de contrôle de flux de messages |
WO2010063182A1 (zh) * | 2008-12-04 | 2010-06-10 | 中兴通讯股份有限公司 | 一种策略确定方法及系统 |
CN102711075A (zh) * | 2012-04-12 | 2012-10-03 | 深圳市中兴移动通信有限公司 | 一种自适应的终端网络流量校正方法 |
CN104243343A (zh) * | 2014-09-29 | 2014-12-24 | 华为技术有限公司 | 一种确定报文冲击的方法和网络设备 |
CN106961392A (zh) * | 2016-01-12 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
CN109120548A (zh) * | 2018-07-02 | 2019-01-01 | 联动优势电子商务有限公司 | 一种流量控制方法及装置 |
CN110380982A (zh) * | 2019-07-31 | 2019-10-25 | 浪潮商用机器有限公司 | 一种流量控制方法及相关装置 |
CN110875953A (zh) * | 2018-09-04 | 2020-03-10 | 中兴通讯股份有限公司 | 一种过负荷控制方法、装置、设备及可读存储介质 |
US10792451B2 (en) | 2008-05-12 | 2020-10-06 | Fisher & Paykel Healthcare Limited | Patient interface and aspects thereof |
US10835702B2 (en) | 2010-10-08 | 2020-11-17 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US10842964B2 (en) | 2004-02-23 | 2020-11-24 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11179535B2 (en) | 2008-10-10 | 2021-11-23 | Fisher & Paykel Healthcare Limited | Nasal pillows for a patient interface |
CN113746756A (zh) * | 2020-05-27 | 2021-12-03 | 中国电信股份有限公司 | 流量的控制方法、装置和非易失性计算机可读存储介质 |
CN114006871A (zh) * | 2021-10-25 | 2022-02-01 | 北京有竹居网络技术有限公司 | 流量控制方法、装置、容器和存储介质 |
US11260194B2 (en) | 2006-07-14 | 2022-03-01 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11541197B2 (en) | 2008-07-18 | 2023-01-03 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11712532B2 (en) | 2004-04-02 | 2023-08-01 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11806452B2 (en) | 2012-08-08 | 2023-11-07 | Fisher & Paykel Healthcare Limited | Headgear for patient interface |
-
2004
- 2004-11-17 CN CNB200410094866XA patent/CN100518149C/zh not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10842964B2 (en) | 2004-02-23 | 2020-11-24 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US10980962B2 (en) | 2004-02-23 | 2021-04-20 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11471635B2 (en) | 2004-02-23 | 2022-10-18 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11395894B2 (en) | 2004-02-23 | 2022-07-26 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11712532B2 (en) | 2004-04-02 | 2023-08-01 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11357944B2 (en) | 2006-07-14 | 2022-06-14 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11291790B2 (en) | 2006-07-14 | 2022-04-05 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11260194B2 (en) | 2006-07-14 | 2022-03-01 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US12083279B2 (en) | 2006-07-14 | 2024-09-10 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
WO2008028418A1 (fr) * | 2006-09-06 | 2008-03-13 | Huawei Technologies Co., Ltd. | Procédé et système de contrôle de flux de messages |
US10792451B2 (en) | 2008-05-12 | 2020-10-06 | Fisher & Paykel Healthcare Limited | Patient interface and aspects thereof |
US11660413B2 (en) | 2008-07-18 | 2023-05-30 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US12076486B2 (en) | 2008-07-18 | 2024-09-03 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11541197B2 (en) | 2008-07-18 | 2023-01-03 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11554234B2 (en) | 2008-07-18 | 2023-01-17 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11179535B2 (en) | 2008-10-10 | 2021-11-23 | Fisher & Paykel Healthcare Limited | Nasal pillows for a patient interface |
WO2010063182A1 (zh) * | 2008-12-04 | 2010-06-10 | 中兴通讯股份有限公司 | 一种策略确定方法及系统 |
US11247013B2 (en) | 2010-10-08 | 2022-02-15 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US10835702B2 (en) | 2010-10-08 | 2020-11-17 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11559650B2 (en) | 2010-10-08 | 2023-01-24 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
US11766535B2 (en) | 2010-10-08 | 2023-09-26 | Fisher & Paykel Healthcare Limited | Breathing assistance apparatus |
CN102711075A (zh) * | 2012-04-12 | 2012-10-03 | 深圳市中兴移动通信有限公司 | 一种自适应的终端网络流量校正方法 |
CN102711075B (zh) * | 2012-04-12 | 2015-06-17 | 努比亚技术有限公司 | 一种自适应的终端网络流量校正方法 |
US11806452B2 (en) | 2012-08-08 | 2023-11-07 | Fisher & Paykel Healthcare Limited | Headgear for patient interface |
CN104243343A (zh) * | 2014-09-29 | 2014-12-24 | 华为技术有限公司 | 一种确定报文冲击的方法和网络设备 |
CN104243343B (zh) * | 2014-09-29 | 2018-02-09 | 华为技术有限公司 | 一种确定报文冲击的方法和网络设备 |
CN106961392B (zh) * | 2016-01-12 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
CN106961392A (zh) * | 2016-01-12 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 一种流量控制方法及装置 |
CN109120548A (zh) * | 2018-07-02 | 2019-01-01 | 联动优势电子商务有限公司 | 一种流量控制方法及装置 |
CN109120548B (zh) * | 2018-07-02 | 2022-03-11 | 联动优势电子商务有限公司 | 一种流量控制方法及装置 |
CN110875953A (zh) * | 2018-09-04 | 2020-03-10 | 中兴通讯股份有限公司 | 一种过负荷控制方法、装置、设备及可读存储介质 |
CN110380982A (zh) * | 2019-07-31 | 2019-10-25 | 浪潮商用机器有限公司 | 一种流量控制方法及相关装置 |
CN113746756A (zh) * | 2020-05-27 | 2021-12-03 | 中国电信股份有限公司 | 流量的控制方法、装置和非易失性计算机可读存储介质 |
CN114006871A (zh) * | 2021-10-25 | 2022-02-01 | 北京有竹居网络技术有限公司 | 流量控制方法、装置、容器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100518149C (zh) | 2009-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1780265A (zh) | 消息系统的流量控制方法 | |
JP5551242B2 (ja) | ワイヤレスデバイスのリソース管理 | |
CN111198759B (zh) | 一种内存优化方法、系统、终端设备及可读存储介质 | |
US8429666B2 (en) | Computing platform with resource constraint negotiation | |
CN101056264A (zh) | 流量控制的方法和业务处理系统 | |
CN1633053A (zh) | 高速下行链路共享信道的信道码动态管理方法 | |
CN105191438B (zh) | 用于移动应用的高功率信道状态通知 | |
CN103841052A (zh) | 一种带宽资源分配系统与方法 | |
CN1578516A (zh) | 数据流控制系统、方法和程序 | |
CN101079743A (zh) | 一种资源接纳控制方法、系统及业务应用系统 | |
CN1968486A (zh) | 一种无线网络资源调整方法及系统 | |
CN1878094A (zh) | 一种网络最大可用带宽的测试方法 | |
JP2015015719A (ja) | 規制の領域の変更中において、サービスの品質を保つ方法と機器 | |
CN1863164A (zh) | 一种abis接口反向拥塞控制方法和收发基站 | |
CN1723731A (zh) | 无线接入网络控制方法和无线接入网络 | |
US11115857B2 (en) | Bandwidth sentinel | |
CN1571538A (zh) | 一种对移动交换中心进行系统负荷控制的方法 | |
CN112788665B (zh) | 战术互联网中一种自适应mac方法 | |
US20180152380A1 (en) | Bandwidth sentinel | |
WO2005006795A1 (en) | Communication system, communication unit and method of power saving therein | |
CN102316491A (zh) | 一种移动终端调整媒体码率的方法和移动终端 | |
CN1849002A (zh) | 公共信道带宽的调整方法 | |
CN116056143A (zh) | 网络拥塞处理方法、装置、电子设备和存储介质 | |
CN1802000A (zh) | 一种无线通信系统混合业务接纳控制方法 | |
CN1801681A (zh) | 多载波通信系统的资源整合方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090722 |
|
CF01 | Termination of patent right due to non-payment of annual fee |