盒子PTN910/950/960批量上报MEM_OVER告警定位

发布时间:  2014-12-25 浏览次数:  113 下载次数:  0
问题描述
【Problem Summary】xx局点PTN910/950/960设备批量上报MEM_OVER告警,其中多台网元出现自动复位。
处理过程

一、 异常网元配置分析:
分析一线反馈内存占用率较高网元,查看网元配置,发现受影响的盒子设备版本和配置如下:
1、 盒子设备版本是R5C00SPC300版本;
2、 内存占用率高的网元,都配置有专网业务
二、 日志分析:
1、 分析其中一台内存占用率较高网元 A 日志,可以看到CPU使用率89%,正常网元一般在30%左右。

2、 查看内存使用详细情况,发现Type为37和38的内存使用峰值异常,正常情况下在500左右。


3、 经确认分析TYPE为37和38的内存被申请情况,申请空间长度为124字节


4、排查代码发现R5版本盒子设备在处理自动环路检测报文时,设备提取报文上送CPU后出现异常申请内存概率没有释放,导致就会泄露一个报文长度的内存(120字节)。

 

根因
PTN盒子设备R5版本环路检测功能存在异常,接收到PTN3900发出的特定的自动环回检测报文时,申请内存保存报文并进行上送CPU处理,但处理完后由于软件处理异常概率未释放这个申请的内存空间, 结果是每次收到PTN3900发出的环路检测报文都会泄露一个报文长度的内存(~120bytes/5s), 长期运行内存泄露严重,上报MEM_OVER告警,触发主控软复位。
解决方案

临时解决措施
1、已经上报了MEM_OVER或者内存占用率较高的盒子网元,通过软复位解决:
2、可以通过命令暂时停止专网内PTN3900(R5C01+SPH208/209)网元自动环路检测报文的发包功能。
注意:查询出来值=0表示自动环回检测发送功能使能;设置为0x80000000表示自动环路检测报文发送去使能。
:ptn-debug:$主控单板,bd,"elanld::get-glb-var g_elanld_trace_cfg"
:ptn-debug:$主控单板,bd,"elanld::set-glb-var g_elanld_trace_cfg,0x80000000"
:ptn-debug:$主控单板,bd,"elanld::get-glb-var g_elanld_trace_cfg"

 

根本解决措施

1、框子PTN3900/3900-8/1900设备R5C01SPC200 SPH210补丁解决
框子设备补丁版本修改发出的自动环路检测报文的DMac,可以避免盒子R5版本接收到特定的自动环路检测报文而导致处理异常概率内存泄漏。
2、 盒子设备R6C10版本解决此问题。

建议与总结

一、该问题判断方法:
1、框子R5C01SPC200+SPH208/209补丁+ PTN 910/PTN 950/PTN 960 R5所有版本、R6C00SPC100、R6C00SPC200版本组网,配置存在专网业务。
2、确认内存泄露区域为Partition ID=1


 

二、建议框子设备打SPH210补丁

三、若现网暂无SPH210补丁计划,且又出现该问题,建议先参考解决方案中的调试命令去使能自动环路检测报文。

END