当前位置: 首页 > news >正文

什么是OLC(CPU过载控制)

文章目录

    • 为什么需要OLC
    • OLC应用场景是怎样的
    • OLC是如何工作的



CPU过载控制OLC(Overload Control)是一种CPU过载调控机制。当CPU过载时,OLC能够对受监控协议报文和任务进行调控,通过不同优先级业务的合理规划和限制报文通过等方式,降低对CPU资源的消耗,并确保设备不会因为某种受监控协议或任务冲击CPU导致的CPU过载而影响对其他业务的正常处理。


为什么需要OLC

由于现网组网的复杂性,上送CPU的业务量过大或发生非法业务恶意冲击CPU等问题,都可能会导致CPU过载。CPU过载会造成设备性能下降和业务处理异常等问题。

OLC采用多级漏桶算法,通过令牌桶和多级漏桶的方式对上送CPU处理的受监控协议报文和任务进行调控,能够解决如下问题:

  • 避免CPU资源被长时间过度消耗,保证设备资源的可用性。
  • 避免设备受到非法业务的恶意攻击,保证设备的安全性。
  • 避免某种业务冲击影响对其他业务的正常处理,保证业务处理的公平性。

OLC应用场景是怎样的

使能OLC功能后,设备在CPU过载时能够及时对受监控协议和任务进行调控。用户还可以选择使能指定受监控协议或任务的OLC功能。同时,还可以使能OLC告警功能,当CPU占用率达到OLC启动门限阈值或低于OLC恢复门限阈值时发出告警。

让我们看个例子。如下图所示,位于不同网段的用户通过Switch接入Internet。由于接入了大量用户,Switch的CPU会处理大量的协议报文和任务。其中,用户发现Switch经常收到大量的ARP Request、ARP Reply和ARP Miss协议报文,并经常处理ARP广播任务,常因此导致CPU占用率大幅升高,造成业务处理异常。用户希望设备能够在CPU占用率超过一定阈值时发出告警并对以上协议报文和任务进行调控,使得CPU负载时不会因为以上协议和任务的冲击而影响其他业务的正常处理,同时希望能够降低CPU的占用率,使其维持在一个稳定水平。

此时,用户可以按照如下思路在Switch上进行配置:

  1. 使能OLC功能。
  2. 使能ARP Request、ARP Reply和ARP Miss协议报文的OLC功能.
  3. 使能ARP广播任务的OLC功能。
  4. 使能OLC告警功能。
  5. 设置OLC启动门限阈值。

配置OLC示例组网图

OLC是如何工作的

OLC采用多级漏桶算法实现对受监控协议报文和任务的调控,其中令牌桶决定其是否允许通过,多级漏桶则决定其通过的速率,通过后的报文才能被上送到CPU。

OLC和CPU占用率相关联,当CPU占用率达到OLC启动门限阈值时,OLC功能启动。

令牌桶

令牌桶用于存放令牌,可存放的令牌总数相当于CPU占用率100%时的报文处理能力。当报文进入漏桶时,必须获得一个令牌才允许通过。令牌桶令牌数的恢复周期为1秒,系统每秒为令牌桶分配一定的令牌数,OLC根据CPU占用率变化自动调整给令牌桶分配的令牌数以控制报文通过的数量。当CPU占用率超过一定阈值后,系统会减少分配的令牌数。当令牌桶的令牌用完之后,进入漏桶的报文将申请不到令牌,则无法被上送到CPU,从而减少CPU的负荷。

多级漏桶

漏桶相当于一个计数器,每当报文进入漏桶时,首先向令牌桶申请令牌,令牌申请成功后,漏桶计数值加1,该计数值累计达到设定的阈值时,后续到达的报文可能会被丢弃。报文通过后,漏桶计数值减1,该数值按照一定的漏出速率减少,漏桶据此控制报文按照一定的速率通过。

OLC采用的多级漏桶包括顶级漏桶、中间漏桶和底层漏桶,由顶级漏桶对整个系统的漏桶进行控制。中间漏桶分为任务中间漏桶和协议中间漏桶,不同受监控协议和任务关联不同的底层漏桶。OLC根据不同业务的优先级,给各个漏桶赋予了不同的权重值,并按照权重值给各漏桶分配资源(可申请的令牌数),保证了不同业务之间的公平性。

多级漏桶基本原理如下图所示。顶级漏桶相当于CPU占用率100%时的处理能力,当CPU占用率达到OLC启动门限阈值时OLC才能启动调控。各受监控协议和任务上送CPU前,分别进入对应的底层漏桶,逐级向上向令牌桶申请令牌,令牌申请成功后才被允许通过。同时,多级漏桶通过调整漏出速率控制报文通过的速率。

多级漏桶基本原理

  • 多级漏桶的控制参数
  1. 漏出速率(a):该参数数值与系统每秒为令牌桶分配的令牌数相同,表示每秒处理的报文数量。
  2. 顶级漏桶容量(N):该参数默认值相当于CPU占用率100%时的报文处理能力。
  3. CPU一级门限阈值(T1):该参数默认值为95%,表示CPU占用率为95%。当CPU占用率达到该门限阈值时,开始调低漏出速率。
  4. CPU二级门限阈值(T2):该参数默认值为98%,表示CPU占用率为98%。当CPU占用率达到该门限阈值时,加倍调低漏出速率。
  5. OLC启动门限阈值(T3):该参数与CPU一级门限阈值相同。当CPU占用率达到OLC启动门限阈值时,启动OLC启动门限定时器(10秒),在该定时器超时前,如果CPU占用率没有低于OLC启动门限阈值,启动OLC功能。
  6. OLC恢复门限阈值(T4):该参数默认值为75%,表示CPU占用率为75%,该数值等于CPU一级门限阈值减去20%。当CPU占用率低于OLC恢复门限阈值时,启动OLC恢复门限定时器(20秒),在该定时器超时前,如果CPU不再次达到OLC启动门限阈值,则停止OLC功能。
  7. 调整因子(S):该参数用于设置漏出速率的调整速度,调整因子越小,调整速度越快,调整因子越大,调整速度越慢。调整因子过小可以让漏出速率能够根据业务变化得到快速调整,但是可能会导致漏出速率出现反复抖动。
  • 多级漏桶的权重水位
    OLC按照权重值给各漏桶分配资源,各漏桶被分配的资源决定了其权重水位,即各漏桶可申请的令牌数。如下图所示(仅为示例),顶级漏桶的初始权重水位相当于CPU占用率95%时可申请的令牌数,随后由顶级漏桶按权重值逐级向下分配给所有子漏桶,每一层级所有漏桶的权重水位之和相同。

多级漏桶权重水位分配

  • 多级漏桶水位更新
    漏桶的水位是指该漏桶需要申请令牌的报文数量,各级漏桶的水位根据令牌申请情况和权重水位进行更新,具体流程如下:
  1. 受监控协议报文或任务进入底层漏桶后,需要申请令牌,漏桶的水位增长,同时上级漏桶即中间漏桶和顶级漏桶的水位也增长同样的水位。
  2. 底层漏桶判断自身当前水位是否超过权重水位,如果没有超过,申请令牌成功,允许报文通过;如果底层漏桶水位超过权重水位,则向上级漏桶申请资源,如果上级漏桶没有超过权重水位,申请令牌成功,允许报文通过。
  3. 报文通过后,底层漏桶减少的水位,在上级漏桶减少同样的水位。
  • 多级漏桶债务分摊
    如果顶级漏桶的水位超过了权重水位,表明整个系统产生了负债。系统需要每秒对漏桶水位进行刷新,计算各级漏桶的债务,没有产生负债的漏桶可以共享出空闲资源,对产生债务的漏桶的债务资源进行分摊。

注意
空闲协议漏桶只能分摊负债协议漏桶的负债资源,空闲任务漏桶只能分摊负债任务漏桶的负债资源。

如下图所示(仅为示例),顶级漏桶的当前水位超过了权重水位,系统产生负债,具体债务分摊流程如下:

  1. 计算负债资源和空闲资源:负债漏桶和空闲漏桶分别计算当前水位和权重水位的差值得出负债资源和空闲资源。
  2. 自顶向下,逐级分摊:各负债漏桶按照权重比例,分摊其他空闲漏桶的空闲资源。
  3. 丢包或延迟处理:如果负债漏桶仍有负债资源,对于协议报文进行丢包处理,对于任务进行延迟处理。


多级漏桶债务分摊

  • 漏桶水位阈值设置
    为防止某种受监控协议或任务漏桶独占顶级漏桶的资源,出现资源分配不公平,在顶级漏桶产生负债时,根据每一层级漏桶的空闲资源和负债资源情况,对负债较大的漏桶计算漏桶水位阈值。在设置漏桶水位阈值后,该漏桶申请令牌时,如果当前水位大于漏桶权重水位且大于漏桶水位阈值,则不允许向上级漏桶申请资源。

http://www.jsqmd.com/news/235189/

相关文章:

  • 大模型算法工程师年薪百万,这可能是你最好的职业选择_今年大模型这工资是认真的吗?
  • 在trae、qoder、Claude Code、Cursor等AI IDE中使用ui-ux-pro-max-skill
  • 三菱Q型PLC在4轴伺服定位及控制中的应用:QD75MH4定位、触摸屏及PLC程序技术资料
  • 做了个工具可以帮你录制任意网页操作并快速转为可以给大模型调用的 MCP
  • ruoyi 新增每页分页条数
  • ESP8266生成二维码算法 OLED显示 支持各种平台移植 算法部分采用c语言,可以移植到各...
  • 深度测评自考必备AI论文平台TOP8:选对工具轻松写完毕业论文
  • 部分离线强化学习相关的算法总结(td3+bc/conrft)
  • 上手实操 | Dense Bev 融合优化方案
  • 西门子PLC 和v90 伺服变频器G120通讯 2台西门子变频器G120 Profinet通讯
  • 【收藏必备】大模型微调入门到精通:原理、优势与PEFT技术详解
  • 西门子200 Smart PLC与昆仑通态触摸屏的脉冲除尘器程序(20仓x12阀,手动自动控制...
  • 基于微信小程序的家乡特产销售平台-计算机毕业设计源码+LW文档
  • 高频信号处理篇---鉴频
  • 基于Java的家政服务平台的设计与实现毕业论文+PPT(附源代码+演示视频)
  • 汽车平顺性实战:从悬架振动到路面反演
  • 扫地机器人路径规划问题,算法是全覆盖内螺旋算法,使用MATLAB实现,下列为运行图过程截图
  • 海洋综合治理空间智能平台专项建设方案——基于空间视频感知与动态三维重构的海域治理技术路径
  • Springboot上门护理服务预约系统3hx0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 综合治理空间智能平台建设总方案——基于空间视频感知与统一空间智能底座的协同治理技术路径
  • 咱们今天聊点硬核的——用VB.NET直接操控三菱变频器。这玩意儿在工厂自动化里可是刚需,特别是需要精准控制电机转速的场景。废话不多说,直接上干货
  • 高频信号处理篇---鉴相
  • 带薪追剧的快乐,被这些 10 分钟短剧承包了
  • 腾讯房地产广告投放公司 朋友圈房产广告投放合作 朋友圈房产广告推广流程
  • 港口综合治理空间智能平台专项建设方案——人–车–船–设备一体化的空间视频智能治理技术路径
  • 玩过电机的都知道,BLDC控制最刺激的就是在无传感和有传感之间反复横跳。今天带大家扒一扒基于STM32F1的这套双料方案,手把手看代码怎么把电机治得服服帖帖
  • (新卷,100分)-数大雁(JavaPythonJSC++C)
  • HMI信息架构设计:四层金字塔模型——构建符合认知负荷的高效界面
  • Flutter for OpenHarmony 实战:Switch 开关按钮详解
  • Springboot少儿编程管理系统760av(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。