Inleiding
Dit document beschrijft de "Graceful Assert Handling" optie, geïntroduceerd in release 21.5.0 van StarOS.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- StarOs
- Serving GPRS-ondersteuningsknooppunt (SGSN)
Gebruikte componenten
De informatie in dit document is gebaseerd op StarOS R21.5 en hoger.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Dit kenmerk staat in de officiële documentatie: SGSN-Admin handleiding.
Het Graceful Assert Handling framework maakt een gracieuze afhandeling mogelijk van abonneesessies waarvoor de ASSERT-voorwaarde is getroffen op het moment van de uitvoering van de oproep. Dit wordt bereikt zonder dat dit van invloed is op andere abonneesessies op hetzelfde proces.
Normaal gesproken, wanneer de ASSERT-voorwaarde wordt geraakt, start het Session Manager (SessMgr)-proces opnieuw op en herstelt alle abonneesessies van de AAA Manager (AAMgr). De herstelde abonnementssessies worden naar de status IDLE verplaatst.
Wanneer Graceful Assert Handling is ingeschakeld, wordt het SessMgr-proclet niet opnieuw gestart. In plaats daarvan herstelt het SessMgr-proclet alleen de sessie van de betreffende abonnee van het AAMgr en keurt het de sessie van de bestaande abonnee op het SessMgr goed. De herstelde abonnementssessies worden naar de status IDLE verplaatst. Op het moment van de herstelprocedure worden alle berichten die naar de abonnee zijn gericht, verwijderd. Na herstel zal de abonnee de naar hem gerichte berichten blijven verwerken. Met deze procedure blijven de abonneesessies die op SessMgr blijven, ongewijzigd.
Probleem
Er zijn een aantal hoek- en/of botsingscases waarvoor de oorzaak complex is of de oorzaak onbekend is. In deze gevallen wordt een graceful assert-benadering gevolgd om herstart van de sessiemanager te voorkomen.
Oplossing
Met graceful assert kunt u de 1 sessie die de graceful assert voorwaarde raakt opschonen en herstellen.
Er is geen impact op een andere sessie op dezelfde sessmgr.
Er zal geen SNMP-trap of syslog zijn voor een graceful herstart.
Er zal geen KPI verlies in het geval van een graceful bewering. De taak zelf wordt niet herstart.
Echter, de graceful beweringen worden behandeld als een andere crash, wat betekent dat u een vermelding in show crash lijst krijgt.
Hoe identificeer je een graceful assert van de SSD:
- Door het systeem geïnitieerde statustort met kern. - zal worden gezien onder "show crash" uitvoer voor stack
- crashed proclet is door de gebruiker geïnitieerd of niet-boxer - wordt na de stack gezien onder uitvoer van "debug console cpu"
- pid 7939 faciliteit sessmgr failover 5132->94 - onder "debug console CPU" zal niet worden vastgelegd/gezien in geval van graceful Assert
Configureren
Graceful Assert Handling kan als volgt worden geconfigureerd:
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
Let op:
-
met beheerste werking: Configureert het gecontroleerde assert framework.
-
s4sgsn : Configureert het S4-SGSN-gestuurde alarm.
-
kerngeneratie: Vormt kerngeneratie voor gecontroleerd assert. Standaard: Ingeschakeld.
-
limiet per bewering: Configureert de limiet per assert voor gecontroleerd assert. Standaard: 5.
-
test bestand-naam bestand_naam regel-nummer regel_num [ sequentienummer seq_num ]: Configureert de gecontroleerde afhandeling van assert-tests.
-
bestandsnaam: Configureert de bestandsnaam waar assert control vereist is. file_name moet een alfanumerieke string zijn van 1 tot en met 254 tekens.
-
regel-nummer regel_num: Configureert het regelnummer waar assert control vereist is. line_num moet een integer zijn van 1 tot 4294967295.
-
volgnummer seq_num: Configureert het volgnummer waar assert control is vereist. seq_num moet een integer zijn van 1 tot 100. Default: 1.
-
uitschakelen: Schakelt de gespecificeerde actie voor een gecontroleerd activeringskader uit.
-
inschakelen: Schakelt de gespecificeerde actie voor een gecontroleerd activeringskader in.
-
nee: Verwijdert de gespecificeerde testconfiguratie met betrekking tot het gecontroleerde activeringskader.
Voorbeeld
********************* 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
Verifiëren
Gebruik deze sectie om te controleren of uw configuratie goed werkt.
Voorbeeld van het verkrijgen van de gecontroleerde assert stats voor alle actieve sessies:
# 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
Voorbeelduitvoer:
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
Deze informatie (tellen en regelnummer) wordt opnieuw ingesteld als de sessmgr opnieuw start voor een andere crash. Wanneer het maximale aantal keren (standaard 5) is bereikt wordt de kern niet meer gegenereerd.
Problemen oplossen
Er is momenteel geen specifieke troubleshooting-informatie beschikbaar voor deze configuratie.