一种针对多处理器核的业务隔离限速方法和装置制造方法及图纸

技术编号:35291106 阅读:24 留言:0更新日期:2022-10-22 12:37
本发明专利技术实施例提供一种针对多处理器核的业务隔离限速方法和装置,通过在每个处理器核本地按业务类型建立本地令牌缓存,当业务报文到达处理器核时,各处理器核首先在业务类型对应的该处理器核自身本地的本地令牌缓存获取令牌,从而减少对全局令牌桶的访问次数,从而避免因全局令牌桶的锁竞争引起阻塞;同时,在全局层面建立所有处理器核共享的全局令牌桶,并按业务类型的需求设置全局令牌桶的令牌数量,实现按业务类型进行限速的目的。实现按业务类型进行限速的目的。实现按业务类型进行限速的目的。

【技术实现步骤摘要】
一种针对多处理器核的业务隔离限速方法和装置


[0001]本专利技术涉及业务隔离限速领域,尤其涉及一种针对多处理器核的业务隔离限速方法和装置。

技术介绍

[0002]当前的负载均衡应用最广泛的是DPVS,是一个多核的高性能四层负载均衡转发系统,但实际应用中,存在大量的业务,如果有的业务被攻击,则会耗尽系统资源,而影响其他业务服务,所以需要对业务进行资源隔离;而DPVS的限速模块是一个独立的模块TC,该模块和业务没有任何联系,需要单独配置分流器和调度器。分流器即报文匹配规则集合、调度器即根据限速参数进行调度。需要根据配置的分流规则,按顺序来匹配业务。DPVS的TC模块对负载进行限速的原理如下:在一个报文调度的队列下,报文通过分流器会一条一条规则进行顺序比较,直到完全匹配到规则,然后用匹配到的规则里设置的调度器对报文进行限速操作。同时分流器进行8次比较还没完全匹配上的话,就直接丢弃这个包。
[0003]在实现本专利技术过程中,申请人发现现有技术中至少存在如下问题:
[0004]在大量业务下,DPVS的TC模块限速由于分流器匹配规则条目非常多,匹配效率低下,同时存在匹配次数限制;不能满足大量业务分别单独限速的需求。

技术实现思路

[0005]本专利技术实施例提供一种针对多处理器核的业务隔离限速方法和装置,解决了现有技术中无法满足大量业务按业务类型进行分别限速的问题。
[0006]为达上述目的,一方面,本专利技术实施例提供一种针对多处理器核的业务隔离限速方法,包括:
[0007]针对每个处理器核,根据所述处理器核收到的业务报文的报文信息确定所述业务报文的业务类型;
[0008]检查所述业务类型对应的全局令牌桶是否有效;
[0009]若所述业务类型对应的全局令牌桶无效,则在与所述业务类型相对应的全局令牌桶进行下次更新之前,丢弃所述业务类型的业务报文;
[0010]若所述业务类型对应的全局令牌桶有效,则进一步检查所述处理器核对应的用于所述业务类型的本地令牌缓存中的本地令牌有效性和本地令牌数量;
[0011]如果检查出所述本地令牌有效性为有效且所述本地令牌数量大于或等于所述业务报文的需求令牌数量,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中与所述需求令牌数量一致的令牌,并且放行所述业务报文;否则,
[0012]从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌更新到所述处理器核对应的用于所述业务类型的本地令牌缓存中,得到所述处理器核对应的用于所述业务类型的本地令牌缓存的更新后令牌数量,并基于所述更新后令牌数量处理所述业务报文;
[0013]其中,全局令牌桶为预先设置的由多处理器核共享、且与业务类型相对应的令牌桶;每个全局令牌桶在单位时间内的令牌总数量按所述全局令牌桶对应的业务类型预设的限速需求分别设置,所述全局令牌桶中的令牌以所述单位时间为周期进行更新。
[0014]进一步地,所述检查所述业务类型对应的全局令牌桶是否有效,包括:
[0015]检查所述业务类型对应的全局令牌桶的有效性标识是否为有效;所述有效性标识在每次更新所述业务类型对应的全局令牌桶时被设置为有效;
[0016]所述基于所述更新后令牌数量处理所述业务报文,具体包括:
[0017]如果所述更新后令牌数量大于预设的临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的令牌,并放行所述业务报文;所述临界令牌数量阈值小于所述业务报文的需求令牌数量;
[0018]如果所述更新后令牌数量小于或等于所述临界令牌数量阈值,则丢弃所述业务报文,并将与所述业务类型相对应的全局令牌桶的有效性标识更新为无效。
[0019]进一步地,所述从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌更新到所述处理器核对应的用于所述业务类型的本地令牌缓存中,包括:
[0020]如果所述本地令牌有效性为无效,则清空所述处理器核对应的用于所述业务类型的本地令牌缓存;进一步,根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌添加到所述处理器核对应的用于所述业务类型的本地令牌缓存中;
[0021]如果所述本地令牌有效性为有效且所述本地令牌数量小于所述业务报文的需求令牌数量,则根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌添加到所述处理器核对应的用于所述业务类型的本地令牌缓存中。
[0022]进一步地,所述根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,包括:
[0023]如果与所述业务类型相对应的全局令牌桶中当前的令牌数量满足所述预期获取令牌数量,则获取所述业务类型相对应的全局令牌桶中的与预期获取令牌数量一致的令牌;
[0024]如果与所述业务类型相对应的全局令牌桶中当前的令牌数量不满足所述预期获取令牌数量,则获取所述业务类型相对应的全局令牌桶中的全部令牌。
[0025]进一步地,所述如果所述更新后令牌数量大于预设的临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的令牌,并放行所述业务报文,包括:
[0026]如果所述更新后令牌数量大于或等于所述业务报文的需求令牌数量,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的与所述需求令牌数量一致的令牌,并放行所述业务报文;
[0027]如果所述更新后令牌数量小于所述业务报文的需求令牌数量且大于所述临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的全部令牌,并放行所述业务报文。
[0028]另一方面,本专利技术实施例提供一种针对多处理器核的业务隔离限速装置,包括:
[0029]业务类型确定单元,用于针对每个处理器核,根据所述处理器核收到的业务报文的报文信息确定所述业务报文的业务类型;
[0030]全局令牌桶检查单元,用于检查所述业务类型对应的全局令牌桶是否有效;
[0031]第一报文过滤单元,用于若所述业务类型对应的全局令牌桶无效,则在与所述业务类型相对应的全局令牌桶进行下次更新之前,丢弃所述业务类型的业务报文;
[0032]本地缓存检查单元,用于若所述业务类型对应的全局令牌桶有效,则进一步检查所述处理器核对应的用于所述业务类型的本地令牌缓存中的本地令牌有效性和本地令牌数量;如果检查出所述本地令牌有效性为有效且所述本地令牌数量大于或等于所述业务报文的需求令牌数量,则触发所述第二报文过滤单元,否则,触发所述本地缓存更新及报文过滤单元;
[0033]第二报文过滤单元,用于消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中与所述需求令牌数量一致的令牌,并且放行所述业务报文;
[0034]本地缓存更新及报本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对多处理器核的业务隔离限速方法,其特征在于,包括:针对每个处理器核,根据所述处理器核收到的业务报文的报文信息确定所述业务报文的业务类型;检查所述业务类型对应的全局令牌桶是否有效;若所述业务类型对应的全局令牌桶无效,则在与所述业务类型相对应的全局令牌桶进行下次更新之前,丢弃所述业务类型的业务报文;若所述业务类型对应的全局令牌桶有效,则进一步检查所述处理器核对应的用于所述业务类型的本地令牌缓存中的本地令牌有效性和本地令牌数量;如果检查出所述本地令牌有效性为有效且所述本地令牌数量大于或等于所述业务报文的需求令牌数量,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中与所述需求令牌数量一致的令牌,并且放行所述业务报文;否则,从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌更新到所述处理器核对应的用于所述业务类型的本地令牌缓存中,得到所述处理器核对应的用于所述业务类型的本地令牌缓存的更新后令牌数量,并基于所述更新后令牌数量处理所述业务报文;其中,全局令牌桶为预先设置的由多处理器核共享、且与业务类型相对应的令牌桶;每个全局令牌桶在单位时间内的令牌总数量按所述全局令牌桶对应的业务类型预设的限速需求分别设置,所述全局令牌桶中的令牌以所述单位时间为周期进行更新。2.如权利要求1所述的针对多处理器核的业务隔离限速方法,其特征在于,所述检查所述业务类型对应的全局令牌桶是否有效,包括:检查所述业务类型对应的全局令牌桶的有效性标识是否为有效;所述有效性标识在每次更新所述业务类型对应的全局令牌桶时被设置为有效;所述基于所述更新后令牌数量处理所述业务报文,具体包括:如果所述更新后令牌数量大于预设的临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的令牌,并放行所述业务报文;所述临界令牌数量阈值小于所述业务报文的需求令牌数量;如果所述更新后令牌数量小于或等于所述临界令牌数量阈值,则丢弃所述业务报文,并将与所述业务类型相对应的全局令牌桶的有效性标识更新为无效。3.如权利要求1所述的针对多处理器核的业务隔离限速方法,其特征在于,所述从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌更新到所述处理器核对应的用于所述业务类型的本地令牌缓存中,包括:如果所述本地令牌有效性为无效,则清空所述处理器核对应的用于所述业务类型的本地令牌缓存;进一步,根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌添加到所述处理器核对应的用于所述业务类型的本地令牌缓存中;如果所述本地令牌有效性为有效且所述本地令牌数量小于所述业务报文的需求令牌数量,则根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,并将实际获取到的令牌添加到所述处理器核对应的用于所述业务类型的本地令牌缓存中。
4.如权利要求3所述的针对多处理器核的业务隔离限速方法,其特征在于,所述根据所述处理器核对应的用于所述业务类型的本地令牌缓存的预期获取令牌数量从与所述业务类型相对应的全局令牌桶中获取令牌,包括:如果与所述业务类型相对应的全局令牌桶中当前的令牌数量满足所述预期获取令牌数量,则获取所述业务类型相对应的全局令牌桶中的与预期获取令牌数量一致的令牌;如果与所述业务类型相对应的全局令牌桶中当前的令牌数量不满足所述预期获取令牌数量,则获取所述业务类型相对应的全局令牌桶中的全部令牌。5.如权利要求2所述的针对多处理器核的业务隔离限速方法,其特征在于,所述如果所述更新后令牌数量大于预设的临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的令牌,并放行所述业务报文,包括:如果所述更新后令牌数量大于或等于所述业务报文的需求令牌数量,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存中的与所述需求令牌数量一致的令牌,并放行所述业务报文;如果所述更新后令牌数量小于所述业务报文的需求令牌数量且大于所述临界令牌数量阈值,则消耗所述处理器核对应的用于所述业务类型的本地令牌缓存...

【专利技术属性】
技术研发人员:杨峰明徐永健肖立美黄保华张哲瑜
申请(专利权)人:新浪网技术中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1