BDCOM 死机异常重启故障处理.docx
- 文档编号:25459249
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:16
- 大小:79.05KB
BDCOM 死机异常重启故障处理.docx
《BDCOM 死机异常重启故障处理.docx》由会员分享,可在线阅读,更多相关《BDCOM 死机异常重启故障处理.docx(16页珍藏版)》请在冰豆网上搜索。
BDCOM死机异常重启故障处理
6死机、重启故障处理
6.1.现场信息采集
设备死机,异常重启这样的问题往往是每个技术支持都会遇到的问题,而导致死机或异常重启的原因非常多,一个正确的处理问题的思路有助于以最快的速度定位问题。
某些问题可能是版本带来的问题,这就需要我们给研发提供相关的信息,而很多时候,我们的技术提供的信息不完整或者不准确,导致研发很难定位问题或者定位问题耗时很多。
技术支持应养成良好的习惯,在向研发提交问题的同时,应尽量把网络运行环境描述清楚,提供尽可能多的有用信息。
6.1.1.基本信息的采集
无论是什么情况引起的死机或异常重启,在提交相关信息的同时,应同时提交showconfig,showrun,showversion,showversionall这些基本信息,可根据具体情况决定是否需要提供showinterface,showiptraffic等。
6.1.2.break信息的采集
系统出现异常后,死机或异常重启后,可能会有break信息,这个时候,我们可执行showbreak,查看这些信息并提交研发,帮助研发定位问题所在。
showbreak信息由三部分组成:
前面部分是寄存器信息;中间callprocedure部分是由调用栈分析得出的函数调用序列;后面stack部分是任务调用堆栈。
6.1.3.热键信息的采集
当系统console口长时间没有反应,怀疑系统出现异常时,可以使用ctrl+\键呼叫系统热键功能,此时系统会把所有任务的堆栈信息打印出来,便于错误分析。
系统热键的输出为showtask以及系统中每一个任务(包括中断)的调用栈。
其中中断的调用栈有特别的意义,研发可根据中断的调用栈和任务堆栈指针进行比较,查找到是哪个任务过于繁忙导致系统无法响应其它输入。
需要特别注意的是Ctrl+\热键的使用条件,就是系统死机或者假死机,console口长时间没有了反应的情况下才使用,而不是随意使用的,并且Ctrl+\热键在使用时系统会终止对其他所有任务的响应。
6.1.4.任务信息采集
在系统运行过程中,可能出现一些异常情况,比如说某个功能不再有效,这有可能是某个任务因出现异常情况而不再运行有关。
可以使用命令showtask来察看任务的情况:
Switch#showtask
CPUutilizationforonesecond:
3%;oneminute:
3%;fiveminutes:
3%
NAMEENTRYTIDPRIPCStkPtrSPlmtERR.NOSTinvokedCPU
----------------------------------------------------------------------------
tExc6536840747fbf800068e7880747fb080747dcc8000000P20.00
tLog65927c0747d27000068e7880747d1900747bef8000000P00.00
bcmD463cc40747bbd8128668e600747baf807477ce8000000P00.00
bcmL49312c073803c0128668e60073802a00737c4d83d0004PD234740.00
bcmC47175407343808128668e60073436f80733f9203d0004PD90400.00
bcmT42adfc0733ad18128668e600733ac3807336e28000000P00.00
bcmL3b9cd4070b7d70128668e60070b7c88070b3e883d0004PD6241510.00
bcmR3e241c070b1d88200668e60070b1cb0070ade983d0004PD1327890.00
IDLE31fb88051a9b4825531fb90051a9af0051a9750000000R97517799.93
root0192f4051a953003066c338051a94b8051a55383d0001S3450.00
_TM_31c248051a531805566d2bc051a51500519d5c0000000D4450560.00
TLII0f8a6c0515c0e0128668e600515bef80514c388000000P10.00
FILT1020b40508cdb8128668e600508cbb00508a0603d0004P30.00
Ttrk1040500507f21012868e7880507eff00507b4b8000000P10.00
Tdtx0dcc4c050747c012868e78805073f8805070a68000000P10.00
TSTP5d4f3c050526b812868e788050524880504ea68000000P44540.00
GARP0e70d40504675812868e7880504651805042b08000000P890120.00
GVRP0ee42805034cc812868e78805034aa805031078000000P10.00
GMRP0e9c6405024da012868e78805024b8005021150000000P10.00
TPDP05517c05020b2812868e788050209000501cdd0000000P4700.00
BCMP04a1c004ff3e4012868e78804ff3c2804ff00e8000000P2230.00
IPFA2035dc04fee6e812868e78804fee49804fea990000000P222540.00
IPSL20347804fea4d012868e78804fea27804fe6778000000P89030.00
MYIP1dc2a004cd21d012868e78804cd1f3004ccfc78000000P89030.00
NATD24097004cc975812868e78804cc954004cc5a00000000P10.00
DHCT0c283404cbf61012868e78804cbf40004cbb8b8000000P44520.00
DHSN0d715c04cb557812868e78804cb536804bb5820000000P10.00
IG-S0f5aec04baf27812868e78804baf06004bab628000000P44760.00
SLOG330f5c0439fe5012868e7880439fc080439c0f8000000P40.00
_USM61b1a004395b7812868e7880439596004391e20000000P60.00
TELD609eac0439190012868e788043916c00438f3a8000000P10.00
RADU352fe804388e2812868e78804388c18043868d0000000P20.00
TAC+601cc00438638812868e7880438616804383e30000000P20.00
IPRT2f7350043778b012868e788043776880435eb58000000P23720.00
RTTM2f72a80435e5a812868e7880435e39004354850000000P23730.00
PBRD1b67e40434e10812868e7880434dee804341bb0000000P10.00
SNMP579a100432985812866c3380432950804319b00000000S1560.00
SNMT57db5c0430074012866d2bc04300580042fc9e8000000D1500.00
L3AG03b538042fc52818066d2bc042fc368042f87d0000000D490.00
THAL021220042f7cf812868e788042f7a28042f3fa0000000P44510.00
_QOS34c6e4042f3ab812866d2bc042f3918042efd60000000D1490.00
_SPF25bfd8042e37b812868e788042e35a0042dba60000000P10.00
OSTM25bf40042db5a012868e788042db388042d1848000000P10.00
EIGP16cf68042c2cd812868e788042c2ac8042b8f80000000P10.00
EIGH16d084042b8ac012868e788042b88b0042aed68000000P10.00
RIPT2eca60042a882012868e788042a8610042a4ac8000000P10.00
BGPD1119dc0429d2c812868e7880429d07004290d70000000P10.00
_IGM1c7e740428d8e812868e7880428d6d004289b90000000P44520.00
TMRT233ecc0428361012868e788042834000427f8b8000000P10.00
TTMR2398980426734812868e788042671180425d5f0000000P10.00
PIMD2b943c0425c3f812868e7880425c1d8042586a0000000P10.00
PST_2b9ce80423df6012868e7880423dcf80423a208000000P10.00
HTTP1c02b0041fd94012868e788041fd720041fa3e8000000P10.00
SNTP5b5ed0041f9f2812868e788041f9ca8041f81d0000000P750.00
RMON2ed058041f648812868e788041f6278041f2730000000P10.00
TFTP6146ac041f221012868e788041f1ba8041ee4b8000000P10.00
TFTS614e08041edff812868e788041eda60041ea2a0000000P10.00
WEBA62e174041d74d012868e788041d72b8041cd778000000P10.00
SSHD5bb4d8041ccbf812868e788041cc9e0041c2ea0000000P10.00
tty0334904041c298012832022c041c1c30041b2c283d0002R92280.00
CHCK31ff9c041a8e6018066d2bc041a8ca0041a7108000000D26230.00
INTR00000000a6906800000000000000000000000000000004453140.00
上面例子中,各项含义如下:
名称含义
NAME任务名称
ENTRY任务入口地址
TID任务的标识符
PRI任务的优先级
PC任务的当前指令地址
SPPtr任务当前堆栈指针
SPLmt任务当前栈顶指针
ERRORNO当前任务的错误码
ST任务的当前状态(P表示阻塞、S表示挂起、R表示就绪,D表示有等待时间)
invoked任务切入次数
CPU任务CPU占用率,只具有定量的意义
注意:
不同的版本、不同的设备类型,上面这些值不会相同。
系统正常运行的情况下,应满足下列条件:
a)只有SNMP任务与root任务状态为S;如果其它任何一个任务状态持续为S,该任务就可能有问题
b)任何一个任务的SPPtr都比位于SPLmt与TID之间。
6.1.5.内存信息的分析及采集
系统内存采用内存池方式管理。
使用showmemoryregion命令可以看出当前内存的使用情况:
Switch#showmemoryregion
Size:
32Currentalloc:
507Maxalloc:
514Total:
4096
Size:
64Currentalloc:
2226Maxalloc:
2230Total:
4096
Size:
128Currentalloc:
38Maxalloc:
41Total:
4096
Size:
256Currentalloc:
117Maxalloc:
120Total:
4096
Size:
512Currentalloc:
241Maxalloc:
242Total:
1024
Size:
1024Currentalloc:
164Maxalloc:
167Total:
1024
Size:
2048Currentalloc:
25Maxalloc:
27Total:
2048
上面的例子中,size表示内存的大小,currentalloc表示当前使用的数量,maxalloc表示自从系统启动后该大小的内存最大分配过多少块,total表示总共数量。
currentalloc和maxalloc的值超过total的值是正常的;但是在配置没有增加或增加后又删除的情况下,某个大小的内存currentalloc值持续大幅度(>10)增长则可能有问题;使用命令showmemoryregionnum可以打印出来具体大小的内存块的上一次操作情况。
例如showmemoryregion2表示128字节内存快的使用情况,依此类推:
Switch#showmemreg2
informationofrank2:
Size:
128Currentalloc:
64Maxalloc:
90Total:
4096
Buffer:
0x033a61e0(128)freeat0x00536e04
Buffer:
0x033a6268(128)freeat0x00536e04
……
其中free表示上一次操作为释放操作,后面是执行释放操作的指令地址,alloc表示分配操作,其它则表示出现了错误。
内存块前端保存了内存池管理信息,VOS会定期检查该信息的正确性,当块前端的控制信息错误时,可能是该块低地址相邻的块内存写越界造成,系统会将前一个块的上次操作(分配、释放)以日志形式报告出来,供分析问题:
%SYS-2-FREE[hex1]:
freeerror,doublefreeptr[hex2],lasttimefreeat[hex3]
内存重复释放错误日志信息:
hex1是本次释放点的PC地址,hex2是内存块的地址,hex3是上次释放点的PC地址。
该日志提示系统存在内存重复释放的情况。
%SYS-2-FREE[hex1]:
freeerror,buffer[hex2]crashed,allocedfrom[hex3]
内存释放错误的日志信息:
hex1是本次释放点的PC地址,hex2是内存块的地址,hex3是该内存块分配点地址。
这有可能是前一个块写越界造成的。
一般这条日志不会单独出现,而是伴随着下面几条日志一起出现。
%SYS-2-MEMORY:
Block([hex1])checkerror,lastoperateat[hex2]
内存块校验错误的日志信息:
hex1是内存块地址,hex2是上次操作该内存块的地址
%SYS-2-PREVBLOCK:
Block([hex1])previousblocklastoperateatpc[hex2]
本日志用于报告前一个内存块上次操作PC地址
6.2.故障诊断流程图
针对于设备重启或者死机的情况,请参照下面的流程图进行排错:
6.3.故障处理步骤
步骤一:
首先确定是死机还是异常重启,确认设备处于死机状态时,可进行热键信息的采集(热键信息的采集参考6.1.3章节)。
采集到热键信息以后,连同基本信息(基本信息的采集参考6.1.1章节)一起发送给研发,协助研发定位问题。
如果设备是异常重启,或者是设备死机后被重启,就采集break信息(break信息的采集参考6.1.2章节),连同基本信息一起发送给研发,协助研发定位问题。
若以上信息不够或者不足以定位问题,执行步骤二。
步骤二:
查看报文缓冲区是否异常。
使用showmemorymblk命令,可以看到内存中被划分出来用作报文缓冲区的几个内存块,每个内存块中的mblk大小不同。
还可以看到每个内存块中可供分配的mblk的个数,以及曾经最大的mblk使用量,和现在使用的mblk个数。
router#showmemmblk报文缓冲区统计信息
BUF0BUF1BUF2BUF3BUF4BUF5BUF6BUF7BUF8
size01042566001548
curr022024
max31211124
total7360368018404601840
Size表示各buffer的mblk的大小
Curr表示各buffer的当前已分配的mblk的个数
Max表示各buffer的曾经最大的mblk数用量
Total表示各buffer的可供分配的mblk的总数
如果某个类别的curr值与total值接近或相等,说明该类别的mblk当前几乎完全被占用,如果某个类别的curr值长时间保持在较大的水平上(大于100)或只增不减是一个不正常的信号,可能由于当时网络中报文比较多,我们就需要查看网络中报文是否很多或者是否有异常报文。
可不断的showinterface和showiptranfic,对比每次的值,是否有某种报文持续快速增长,如果确实有,可通过showtask查看是否有异常任务(showtask使用方法及如何查看请参考6.1.4章节),若无异常任务,可进一步通过抓包等方式确认是什么报文,定位问题。
如果网络中报文又不是很多,说明系统当时可能有问题,可以使用下面的其他手段进一步定位。
步骤三:
查看是否是mblk泄露
1、阅读mblk泄漏日志
mblk泄漏日志为如下形式:
%MBLK-4-OVERTIME:
mblk([hex1])allocatpc[hex2]tick[hex3],holdfor30minutes,maybeleak。
其中hex1表示mblk地址,下面两步查看mblk内容时即以此地址为准。
hex2表示mblk分配地址,hex3为分配时间,该值供参考。
上述三个值都是以16进制形式表示的。
2、查看mblk内容
当怀疑系统中出现了mblk泄漏时,可以使用showmemorymsgb查看当前未释放的mblk。
例如:
Switch#showmemorymsgb
mblk(0x00df4718),allocat0x000ef88cdatap(0x00e4794c),next0x00000000
mblk(0x00df5748),allocat0x000e2a2cdatap(0x00e13d48),next0x00000000
mblk(0x00df78d0),allocat0x000e2a2cdatap(0x00e14270),next0x00000000
mblk(0x00df79f8),allocat0x000e2a2cdatap(0x00e138d0),next0x00000000
mblk(0x00e08f78),allocat0x0003a380datap(0x00e1429c),next0x00000000
mblk(0x00e090a0),allocat0x0003a308datap(0x00e142c8),next0x00000000
Switch#
其中allocat后面的值为分配点指令地址。
为了更容易定位问题,我们可以查看mblk的内容。
我们选取mblk泄露日志中记录的mblk,查看它的内容。
使用showmemorymsgbaddress命令:
showmemmsgb0x00df5748
mblk0x00df5748rptr=0x008c5ab4wptr=0x008c5b02next=0x00000000prev=0x00000000cont=0x00000000
datab0x00e13d48base0x008c5ab4limit0x008c5b02ref1
datafrombase:
008c5ab0:
000000004a616e2020352030363a3039
008c5ac0:
3a3231205359532d362d434f4e464947
008c5ad0:
3a20436f6e666967757265642066726f
008c5ae0:
6d2076747920312062792073756e7869
把这些内容记录下来,提交给研发,这有助于进一步缩小问题范围。
3、较低版本中查看mblk内容
当系统模块libsys版本低于1.3.0时,没有showmemorymsgb命令,此时可以通过showmemory命令查看mblk内容。
仍然以上节mblk地址0x00df5748为例:
首先使用showmemory0x00df5748显示mblk控制块内容:
Switch#showmemory0x00df57480x30
00df5740:
0232B0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BDCOM 死机异常重启故障处理 死机 异常 故障 处理
![提示](https://static.bdocx.com/images/bang_tan.gif)