简介
本文档介绍StarOS版本21.5.0中引入的“平稳断言处理”功能。
先决条件
要求
Cisco 建议您了解以下主题:
使用的组件
本文档中的信息基于StarOS R21.5及更高版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
该功能可在以下官方文档中找到:SGSN管理指南。
流畅的断言处理框架能够流畅地处理呼叫执行时触发ASSERT条件的用户会话。这可在不影响同一进程上的其他用户会话的情况下实现。
通常,当达到ASSERT条件时,会话管理器(SessMgr)进程会重新启动并从AAA管理器(AAMgr)恢复所有用户会话。 恢复的用户会话将转换为IDLE状态。
启用平稳断言处理后,SessMgr进程不会重新启动。相反,SessMgr进程仅从AAAMgr恢复受影响的用户会话,并清除SessMgr上的现有用户会话。恢复的用户会话将转换为IDLE状态。在执行恢复过程时,会丢弃所有指向用户的消息。恢复后,用户将继续处理向其发送的消息。在此过程中,保留在SessMgr上的用户会话不受影响。
问题
有些拐角和/或冲突案例根本原因修复非常复杂或根本原因未知。在这些情况下,会采用平滑断言方法来避免会话管理器完全重启。
解决方案
使用平滑断言,您可以清除和恢复符合平滑断言条件的1个会话。
对同一sessmgr上的任何其他会话没有影响。
无用于平滑重启的SNMP陷阱或系统日志。
如果判断正确,则不会出现KPI损失。任务本身不会重新启动。
但是,平稳断言的处理方式与任何其他崩溃类似,这意味着您将在show crash list中看到一个条目。
如何从SSD识别流畅断言:
- 系统启动的状态转储,带核心。 — 将在堆栈之前的“show crash”输出下显示
- 崩溃的proclet是用户启动或非机箱程序 — 在堆栈之后的“debug console cpu”输出下可见
- pid 7939 facility sessmgr failover 5132->94 — “debug console CPU”(调试控制台CPU)下不会记录/看到平滑断言
配置
可以按如下方式配置正常断言处理:
configure
debug controlled-assert s4sgsn
[ disable | enable ] core-generation
limit-per-assert assert_value
[ no ] test file-name file_name line-number line_num [ sequence-number seq_num ]
end
请注意:
示例
********************* CRASH #93 ***********************
SW Version : 21.5.19
Similar Crash Count : 8
Time of First Crash : 2019-May-21+06:57:14
Fatal Signal 6: Aborted
PC: [ffffe430/X] __kernel_vsyscall()
Note: System-initiated state dump w/core. <<< This note indicates a graceful assert.
Process: card=10 cpu=0 arch=X pid=11573 cpu=~16% argv0=sessmgr
Crash time: 2019-May-23+06:00:13 UTC
Recent errno: 11 Resource temporarily unavailable
Build_number: 71813
验证
使用本部分可确认配置能否正常运行。
获取所有活动会话的受控断言统计信息的示例:
# zcat ssd_s4sgn.log.gz | sed -n -e '/\*\{7\} show session subsystem facility sessmgr all debug-info /,/\*\{7\}/p' | sed -e '/^SessMgr: /,/^Controlled Assert Stats/{/^SessMgr: /!{/^Controlled Assert Stats/!d}}' | grep -E "SessMgr: Instance [0-9]{1,3}$" -A 10
示例输出:
SessMgr: Instance 135
Controlled Assert Stats
Module Name :SGW_DRV
Assert Count:0
Count File:Line Last Assert hit time(in sec)
Module Name :S4_SGSN
Assert Count:1
Count File:Line Last Assert hit time(in sec)
1 sess/sgsn/sgsn-app/s4_sm/s4_smn_egtpc.c:3164 2019/01/30 09:28:11 UTC
如果sessmgr针对任何其他故障执行重新启动,将重置此信息(计数和行号)。在达到最大次数(默认5)后,将不生成核心。
故障排除
目前没有针对此配置的故障排除信息。