AR18-20在VRP3.40-0009内存泄漏问题的解决方法
一、 组网:
无。
二、 问题描述:
AR18-20经常出现网络中断问题,出现问题后设备对命令行基本不响应。
比如
<AR18-20>display current
% Error: match string
必须手动重启才能恢复。
AR18-20版本:VRP3.40, Release RT-0009
三、 过程分析:
首先需要确认现场问题是内存泄漏问题还是内存空闲链被写坏问题,先用如下方法收集内存渐进信息已确认是否内存泄漏。
注意:如果内存泄漏不是很快的话,下面给出的操作需要反复执行,至少一天分不同时段执行3-5次,收集2-3天的信息才有分析的价值。
定位内存泄漏的步骤如下:
1.在不同时间段查看系统内存,如果第三列used,有哪个字节块的内存在不停增长,有可能就是它在丢内存。
2006-04-27 14:20收集的内存信息
[AR1820]_h
[AR1820-hidecmd]_dis memory
Slice Memory Usage:
Block Size 32 Free 619 Used 75364 Total 75983
Block Size 64 Free 208 Used 45656 Total 45864
Block Size 128 Free 1 Used 8739 Total 8740
Block Size 256 Free 78 Used 2217 Total 2295
Block Size 512 Free 1 Used 92 Total 93
Block Size 1024 Free 8 Used 258 Total 266
Block Size 2048 Free 47 Used 313 Total 360
Block Size 4096 Free 0 Used 69 Total 69
-----------------------------Summary--------------------------------
Used(Byte) 8254720 Free 962 Used 132708 Total 133670
Total Slice Allocated Size: 13195776 bytes Used Ratio: 62
Total Slice Memory(Include Control Data and Free Slice): 13195776 bytes
Raw Slice Memory Usage:
Total Used Size: 7020184 bytes Num: 51
Total Raw Slice Size (Include Control Data and Free Slice): 7050768 bytes Use
d Ratio: 99
System Total Memory(bytes): 32360064
2006-4-27 18:30 收集的内存信息
[AR1820-hidecmd]_dis memory
Slice Memory Usage:
Block Size 32 Free 620 Used 138905 Total 139525
Block Size 64 Free 123 Used 45735 Total 45858
Block Size 128 Free 4 Used 8738 Total 8742
Block Size 256 Free 68 Used 2217 Total 2285
Block Size 512 Free 1 Used 106 Total 107
Block Size 1024 Free 8 Used 258 Total 266
Block Size 2048 Free 15 Used 313 Total 328
Block Size 4096 Free 0 Used 70 Total 70
-----------------------------Summary--------------------------------
Used(Byte) 10304224 Free 839 Used 196342 Total 197181
Total Slice Allocated Size: 17326848 bytes Used Ratio: 59
Total Slice Memory(Include Control Data and Free Slice): 17326848 bytes
Raw Slice Memory Usage:
Total Used Size: 7020184 bytes Num: 51
Total Raw Slice Size (Include Control Data and Free Slice): 7050768 bytes Use
d Ratio: 99
System Total Memory(bytes): 32360064
可见32字节的内存块在丢内存, 该内存Used 持续增加,并且再不停的申请空间,始终不减少。
2. 针对问题内存块,查看是哪个MID申请内存过多导致。以这个问题为例,用display memory 32 group,看看是哪个MID申请内存过多。很明显是由于MID为0395的模块消耗内存过多。
2006-04-27 14:20收集的内存信息
[AR1820-hidecmd]_dis memory 32 group
(0060, 1) (c000, 5) (0170, 103) (0171, 834)
(dd35, 1) (0150, 38988) (0395, 31391) (0350, 6)
(0175, 315) (0392, 12) (0173, 6) (0117, 1)
(0164, 1) (0880, 6) (020a, 2) (0119, 7)
(0050, 1) (0180, 260) (0200, 11) (0201, 2)
(0407, 3237) (041a, 1) (0133, 4) (0220, 14)
(017d, 2) (0007, 2) (0141, 200) (0135, 4)
(0394, 2) (0208, 1) (0012, 1) (0000, 0)
2006-4-27 18:30 收集的内存信息
[AR1820-hidecmd]_dis memory 32 group
(0060, 1) (c000, 5) (0170, 103) (0171, 834)
(dd35, 1) (0150, 38988) (0395, 95046) (0350, 6)
(0175, 355) (0392, 12) (0173, 12) (0117, 1)
(0164, 1) (0880, 6) (020a, 2) (0119, 7)
(0050, 1) (0180, 260) (0200, 11) (0201, 2)
(0407, 3237) (041a, 1) (0133, 4) (0220, 14)
(017d, 2) (0007, 2) (0141, 200) (0135, 4)
(0394, 2) (0208, 1) (0012, 1) (0000, 0)
[AR1820-hidecmd]_dis memory 32 group
(0060, 1) (c000, 5) (0170, 103) (0171, 834)
(dd35, 1) (0150, 39016) (0395, 108689) (0350, 6)
(0175, 751) (0392, 12) (0173, 36) (0117, 1)
(0164, 1) (0880, 6) (020a, 2) (0119, 7)
(0050, 1) (0180, 260) (0200, 11) (0201, 2)
(0407, 3237) (041a, 1) (0133, 4) (0220, 14)
(017d, 2) (0007, 2) (0141, 200) (0394, 2)
(0135, 4) (0208, 1) (0012, 1) (0000, 0)
现在可以确定是0395模块在丢。
3.然后再执行命令_dis memory 32 group [num] 收集信息,如此研发就能定位是哪个具体模块在丢内存。
[hueirenyiyuan-hidecmd]_dis memory 32 group 0395
(00024, 43357)
[hueirenyiyuan-hidecmd]_dis memory 32 group 0395
(00024, 43425)
四、 解决方法:
问题的根源是DVPN模块处理某些报文不合理导致内存泄漏。由于目前网络中使用的是DVPN一期,该版本存在大量问题,并且已经不再开发,因此和用户沟通升级到DVPN二期。通过对VRP3.40, Release 0108验证测试,没有存在此问题。可以协调用户升级到版本VRP3.40, Release 0108。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作