簡介
本檔案介紹StarOS 21.5.0版中引入的「平穩斷言處理」功能。
必要條件
需求
思科建議您瞭解以下主題:
採用元件
本文檔中的資訊基於StarOS R21.5及更高版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
該功能可在以下官方文檔中找到:SGSN管理指南。
通過平穩斷言處理框架,可以平穩處理呼叫執行時發生ASSERT條件的使用者會話。這可在不影響同一proclet上的其他使用者會話的情況下實現。
通常,當達到ASSERT條件時,會話管理器(SessMgr)proclet會重新啟動並從AAA管理器(AAMgr)恢復所有訂戶會話。 已恢復的使用者會話將移動到IDLE狀態。
啟用平穩斷言處理後,SessMgr進程將不會重新啟動。相反,SessMgr進程僅從AAMgr恢復受影響的訂戶會話,並清除SessMgr上的現有訂戶會話。已恢復的使用者會話將移動到IDLE狀態。在恢復過程時,會丟棄所有指向訂戶的消息。恢復後,使用者將繼續處理指向它的消息。在此過程中,保留在SessMgr上的訂戶會話不受影響。
問題
某些拐角和/或衝突案例的根源修復非常複雜或根本原因未知。在這些情況下,會採用優雅的斷言方法來避免會話管理器完全重新啟動。
解決方案
使用正常斷言,您可以清除並還原達到正常斷言條件的1個作業階段。
對同一sessmgr上的任何其他會話沒有影響。
無用於平滑重啟的SNMP陷阱或系統日誌。
在平穩斷言的情況下,不會出現KPI損失。不會重新啟動任務本身。
但是,優雅的斷言的處理方式與任何其它崩潰一樣,這意味著您將會在show crash list中看到一個條目。
如何從SSD中識別流暢的斷言:
- 帶核心的系統啟動狀態轉儲。 — 會在堆疊之前的「show crash」輸出下看到
- crashed proclet是使用者啟動或非機箱的 — 堆疊後會顯示「debug console cpu」輸出
- pid 7939 facility sessmgr failover 5132->94 — 如果出現平穩斷言,則不會記錄/看到「debug console 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
請注意:
-
controlled-assert:配置受控斷言框架。
-
s4sgsn :配置S4-SGSN控制的斷言。
-
核心層生成:配置受控斷言的核心生成。預設值:已啟用.
-
limit-per-assert:為受控斷言配置每個斷言的限制。預設值:5.
-
test file-name file_name line-number line_num [ sequence-number seq_num ]:配置受控斷言測試處理。
-
file-name file_name:配置需要宣告控制的檔名。file_name必須是1到254個字元的字母數字字串。
-
line-number line_num:配置需要宣告控制的行號。line_num必須是1到4294967295之間的整數。
-
sequence-number seq_num:配置需要宣告控制的序列號。seq_num必須是1到100之間的整數。預設值:1.
-
disable:禁用受控斷言框架的指定操作。
-
enable:啟用受控斷言框架的指定操作。
-
否:刪除與受控斷言框架相關的指定測試配置。
範例
********************* 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)後,將不會生成核心。
疑難排解
目前尚無適用於此組態的具體疑難排解資訊。