RG RSR30X路由器LISR进程CPU利用率高问题
一、故障现象描述
客户现场两台RSR30X出现cpu高问题,问题持续时间约5分钟,CPU升高期间,并未发现业务出现异常。

通过查看设备端日志,发现占用CPU较高的进程是LISR_INT。

二、故障排查分析
经过排查发现,计算LISR_INT的CPU利用率,按照计算周期内LISR_INT执行的时间与计算周期总时间周期的比值确认,计算公式如下:
cpu_rate = int_using_time*100/(current_cycle - begin_int_time);
其中,current_cycle表示当前的cycle计数,不清零,持续递增;
begin_int_time表示低级中断开始的时间,不清零,持续递增;
int_using_time表示本次计算周期内低级中断持续的时间,计算一次完成后会清0;
由于current_cycle和begin_int_time使用32bit的变量进行记录,且不会清0,会持续升高,因此存在溢出的情况,当出现溢出时current_cycle - begin_int_time有可能会变成一个非常小的值,因此cpu_rate会变成非常大的值超过100,此时show cpu时会将cpu利用率强制显示为100%。综上:故障原因是由于计算LISR-INT的cpu利用率时,使用的变量容量较小,当变量出现溢出时,会导致LISR-INT的cpu利用率失准,出现误报。
三、故障根因说明
由于计算LISR-INT的cpu利用率时,使用的变量容量较小,当变量出现溢出时,会导致LISR-INT的cpu利用率失准,出现误报。
四、故障解决方案
升级10.4(3b76)p1版本解决现场问题。
阅读剩余
版权声明:
作者:SE_You
链接:https://www.cnesa.cn/7707.html
文章版权归作者所有,未经允许请勿转载。
THE END