Inleiding
In dit document wordt beschreven hoe u kunt bepalen of StarOS KNI: Out of Memory-logs worden veroorzaakt door problemen in de StarOS-toepassing of door hardwarestuurprogramma's.
Achtergrond
De Kernel Network Interface (KNI) module, binnen het DPDK Internal Forwarder (IFTASK) proces, is een mechanisme waarmee gebruikers-ruimteprogramma's pakketten rechtstreeks van een netwerkinterface kunnen ontvangen, waarbij de Linux-netwerk- en Linux IP-stack volledig wordt omzeild.

KNI: Uit de geheugenlogboeken worden snelheidsbeperkende waarschuwingen gegenereerd wanneer er een probleem met bronnenconflicten is dat de KNI-module beïnvloedt.
- Geheugenbuffers worden niet gewist op het niveau van bare metal (hardware), waardoor de buffer wordt overschreden.
- De KNI-pools, waaruit de iftask de berichtenbuffer voor deze pakketten toewijst, hebben geen ruimte meer.
- De virtuele functie zoekt naar meer pakketten, maar de fysieke functie reageert dat het niets heeft.
- Zodra de KNI: Out of Memory-toestand optreedt, gaat de iftask naar de back-upgeheugenpool om het pakket verder toe te wijzen en te verwerken. Als het geheugen van de back-uppool ook leeg raakt, laat het systeem de pakketten vallen.
- Omdat de iftask de burst van pakketten die uit de kernel komen niet kan lezen, wordt het KNI: Out of Memory log geproduceerd op het StarOS.
Triggers voor KNI: Out of Memory-conditie:
Potentiële triggers voor de buffer overflow conditie kunnen variëren, zoals het uitvoeren van SFTP of SCP applicaties of een zeer grote bestandsoverdracht tussen CF en SF kaarten.
Stappen om te onderzoeken
Stap 1. Observeer de symptomen
Stap 2. Controleren op verslechtering van de gezondheid van het DI-netwerk
Stap 3. Controleren op Userspace KNI Drops
Stap 4. Controleer de hardwarestuurprogramma's
Stap 1. Observeer de symptomen
Correleer de timing van KNI: Out of Memory-fouten met andere symptomen, zoals pakketverlies of degradatie van de toepassingslaag (egtpc-padfouten).
KNI: logboeken buiten het geheugen
- In de StarOS-syslogs ziet u logs die aangeven dat de kernal-netwerkinterface geen geheugen meer heeft.
2023-Nov-16+09:18:03.205 [iftask 214701 error] [1/0/9602 evlgd_syslogd.c:236] [software internal system syslog] CPU[3/0]: Nov 16 14:18:03 iftask[7387]: KNI: Out of memory, kni port cpbond0, socket_id=0, total=-130952296, iter=27
- Als het back-upgeheugen leeg is, kunt u foutberichten zien die aangeven dat het geheugen van de back-uppool ook leeg is.
RTE_LOG(ERR, KNI, "Out of memory from Backup pool, kni port %s, socket_id=%d, total=%d, iter=%d\n", kni->name, rte_socket_id(), kni->oom_backup_warn, i)
- In de IFTask logs, gevonden in de tmp directory in de debug shell, kunt u de KNI: Out of Memory fouten observeren:
Wed Nov 15 17:20:30 2023 PID:7387 KNI: Out of memory, kni port cpbond0, socket_id=0, total=-759247296, iter=25
Falen van het EGTPC-pad
- Spikes in gtpc-padfouten naar verschillende peers kunnen optreden met de oorzaak Er kan geen reactie van peer optreden tijdens de tijd van het pakketverlies.
2023-10-23T00:14:33.813+00:00 Nodename evlogd: [local-60sec33.780] [egtpmgr 143137 info] [6/0/12364 egtpmgr_pm.c:905] [context: mme_ctx, contextID: 3] [software internal system critical-info syslog] context: mme_ctx, service : mme_svc_egtp, self addr: , GTP-C path failure for peer , peer session count marked: 0, egtpmgr state SRP_SESS_STATE_ACTIVE
Stap 2. Controleren op verslechtering van de gezondheid van het DI-netwerk
Zoek welke verbindingen de degradatie hebben. Wanneer de resultaten van DI-netwerkstatussen langdurig worden weergegeven, kunnen hogere percentages voor verlies of daling wijzen op DI-netwerkconfiguratie of operationele problemen, overbelasting van het verkeer of VM- of hostproblemen.
Sessieherstelstatus uitgebreid weergeven
- Gebruik uitgebreide uitgangen voor sessieherstel om te identificeren welke virtuele functiekaart als de Demux-kaart fungeert.
******** show session recovery status verbose *******
Tuesday October 24 11:23:45 EDT 2023
Session Recovery Status:
Overall Status : Ready For Recovery
Last Status Update : 1 second ago
----sessmgr--- ----aaamgr---- demux
cpu state active standby active standby active status
---- ------- ------ ------- ------ ------- ------ -------------------------
3/0 Active 24 1 24 1 0 Good
4/0 Active 24 1 24 1 0 Good
5/0 Active 24 1 24 1 0 Good
6/0 Active 0 0 0 0 10 Good (Demux)
7/0 Active 24 1 24 1 0 Good
8/0 Active 24 1 24 1 0 Good
9/0 Active 24 1 24 1 0 Good
10/0 Active 24 1 24 1 0 Good
11/0 Active 24 1 24 1 0 Good
12/0 Standby 0 24 0 24 0 Good
Details van het DI-netwerk van de cloudmonitor weergeven
- Gebruik de "toon cloud monitor di-network detail"-uitgangen om te identificeren welke DI-netwerkverbindingen tussen virtuele functiekaarten een daling van de hartslag hebben.
- Druppels in hartslag van CF- en SF-kaarten naar SF-kaart 6 worden weergegeven. Uitgangen voor CF- en SF-kaarten naar andere CF- en SF-kaarten tonen geen hartslagdalingen.
******** show cloud monitor di-network detail *******
Tuesday October 24 11:23:51 EDT 2023
Card 1 Heartbeat Results:
ToCard Health 5Min-Loss 60Min-Loss
------ ------- --------- ----------
…
6 Good 0.00% 0.66%
…
Card 2 Heartbeat Results:
…
6 Bad 14.67% 3.50%
…
Card 3 Heartbeat Results:
…
6 Bad 5.35% 2.69%
…
Card 4 Heartbeat Results:
…
6 Good 0.00% 0.00%
…
Card 5 Heartbeat Results:
…
6 Bad 18.57% 3.90%
…
Card 6 Heartbeat Results:
…
1 Good 0.00% 0.90%
2 Bad 12.63% 3.31%
3 Bad 2.90% 2.14%
4 Good 0.00% 0.00%
5 Bad 13.09% 3.30%
7 Good 0.00% 0.00%
8 Bad 2.91% 2.20%
9 Good 0.00% 0.93%
10 Bad 14.28% 3.38%
11 Bad 3.67% 2.09%
12 Good 0.00% 0.00%
…
Card 7 Heartbeat Results:
…
6 Good 0.00% 0.00%
…
Card 8 Heartbeat Results:
…
6 Bad 7.47% 2.85%
…
Card 9 Heartbeat Results:
…
6 Bad 0.00% 1.07%
…
Card 10 Heartbeat Results:
…
6 Bad 16.01% 3.73%
…
Card 11 Heartbeat Results:
…
6 Bad 7.47% 2.71%
…
Card 12 Heartbeat Results:
…
6 Good 0.00% 0.00%
Cloud Monitor ControlPlane weergeven
- Gebruik tonen cloud monitor control plane uitgangen om te identificeren welke DI-netwerkverbindingen degradatie hebben.
******** show cloud monitor controlplane *******
Tuesday October 24 11:24:22 EDT 2023
Cards 15 Second Interval 5 Minute Interval 60 Minute Interval
Src Dst Xmit Recv Miss% Xmit Recv Miss% Xmit Recv Miss%
--- --- ------ ------ ------ ------ ------ ------ ------ ------ ------
…
01 06 75 75 0.0% 1500 1500 0.0% 18000 17842 0.9%
…
02 06 75 75 0.0% 1500 1265 15.7% 18000 17546 2.5%
…
03 06 75 75 0.0% 1500 1396 6.9% 18000 17491 2.8%
…
04 06 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
…
05 06 75 75 0.0% 1500 1267 15.5% 18000 17325 3.8%
…
06 01 75 75 0.0% 1500 1500 0.0% 18000 17823 1.0%
06 02 75 75 0.0% 1500 1301 13.3% 18000 17567 2.4%
06 03 75 75 0.0% 1500 1419 5.4% 18000 17561 2.4%
06 04 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
06 05 75 75 0.0% 1500 1294 13.7% 18000 17579 2.3%
06 07 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
06 08 75 75 0.0% 1500 1417 5.5% 18000 17565 2.4%
06 09 75 75 0.0% 1500 1500 0.0% 18000 17824 1.0%
06 10 75 75 0.0% 1500 1296 13.6% 18000 17573 2.4%
06 11 75 75 0.0% 1500 1422 5.2% 18000 17570 2.4%
06 12 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
…
07 06 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
…
08 06 75 75 0.0% 1500 1426 4.9% 18000 17545 2.5%
…
09 06 75 75 0.0% 1500 1500 0.0% 18000 17833 0.9%
…
10 06 75 75 0.0% 1500 1278 14.8% 18000 17369 3.5%
…
11 06 75 75 0.0% 1500 1408 6.1% 18000 17481 2.9%
…
12 06 75 75 0.0% 1500 1500 0.0% 18000 18000 0.0%
Cloud Monitor Dataplane weergeven
- Gebruik de dataplane-uitgangen van de cloudmonitor om te identificeren welke DI-netwerkverbindingen degradaties hebben en om eenrichtingsdegradaties tussen virtuele functiekaarten te identificeren.
******** show cloud monitor dataplane *******
Tuesday October 24 11:21:46 EDT 2023
Cards 15 Second Interval 5 Minute Interval 60 Minute Interval
Src Dst Miss Hit Pct Miss Hit Pct Miss Hit Pct
--- --- ------ ------ ------ ------ ------ ------ ------ ------ ------
…
06 01 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 02 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 03 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 04 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 05 1 149 0.7% 0 3001 0.0% 0 36000 0.0%
…
01 06 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
02 06 0 150 0.0% 210 2790 7.0% 1015 34985 2.8%
03 06 31 119 20.7% 540 2460 18.0% 995 35005 2.8%
04 06 34 116 22.7% 554 2446 18.5% 1017 34983 2.8%
05 06 0 150 0.0% 213 2787 7.1% 991 35009 2.8%
07 06 0 150 0.0% 0 3000 0.0% 359 35641 1.0%
08 06 29 121 19.3% 546 2454 18.2% 1009 34991 2.8%
09 06 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
10 06 0 150 0.0% 208 2792 6.9% 992 35008 2.8%
11 06 31 119 20.7% 548 2452 18.3% 993 35007 2.8%
12 06 34 116 22.7% 547 2453 18.2% 1001 34999 2.8%
…
06 07 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 08 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 09 0 150 0.0% 0 3000 0.0% 1 35999 0.0%
…
06 10 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 11 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
…
06 12 0 150 0.0% 0 3000 0.0% 0 36000 0.0%
Stap 3. Controleren op Userspace KNI Drops
Statistieken voor iftask weergeven
- Verzamel meerdere keren tonen of taakstatusuitvoer om te controleren of KNI-dalingen niet toenemen in het IFTASK userspace applicatieniveau (StarOS).
******** show iftask stats *******
Tuesday October 24 11:22:06 EDT 2023
…
CARD 6 STATS
---------------------------------------------------------------------------
Counters SF6 SF6_PPS
---------------------------------------------------------------------------
svc_rx 2587301598 2203
svc_tx 548969428 295
di_rx 2260147059 2258
di_tx 4072038717 3966
__ALL_DROPS__ 0 0
svc_tx_drops 0 0
di_rx_drops 0 0
di_tx_drops 0 0
sw_rss_enq_drops 0 0
kni_thread_drops 0 0
kni_drops 0 0
mcdma_drops 0 0
mux_deliver_hop_drops 0 0
mux_deliver_drops 0 0
mux_xmit_failure_drops 0 0
mc_dma_thread_enq_drops 0 0
sw_tx_egress_enq_drops 0 0
cpeth0_drops 0 0
mcdma_summary_drops 0 0
fragmentation_err 0 0
reassembly_err 0 0
reassembly_ring_enq_err 0 0
__DISCARDS__ 241984 0
__BOND_DISCARDS__ 55282718 142
…
TOTAL STATS
---------------------------------------------------------------------------
Counters TOTAL TOTAL_PPS
---------------------------------------------------------------------------
svc_rx 27964563261 24791
svc_tx 36109966153 30168
di_rx 74133486629 51929
di_tx 73958155063 50897
__ALL_DROPS__ 0 0
svc_tx_drops 0 0
di_rx_drops 0 0
di_tx_drops 0 0
sw_rss_enq_drops 0 0
kni_thread_drops 0 0
kni_drops 0 0
mcdma_drops 0 0
mux_deliver_hop_drops 0 0
mux_deliver_drops 0 0
mux_xmit_failure_drops 0 0
mc_dma_thread_enq_drops 0 0
sw_tx_egress_enq_drops 0 0
cpeth0_drops 0 0
mcdma_summary_drops 0 0
fragmentation_err 0 0
reassembly_err 0 0
reassembly_ring_enq_err 0 0
__DISCARDS__ 2324968 0
__BOND_DISCARDS__ 55635534 149
-----------------------------------------------------------------------------------------------
NDR is 100.0000
CONTINUE_TRAFFIC
-----------------------------------------------------------------------------------------------
Stap 4. Controleer de hardwarestuurprogramma's
Met de applicatielaag vrijgesproken van verwijtbaarheid, richt u zich op onderliggende stuurprogramma's op hardwareniveau om de KNI: Out of Memory-fouten aan te pakken.
Omdat het hardwarestuurprogramma voor bare metalen een bepaalde hoeveelheid buffer toewijst aan elke virtuele functie, zijn problemen met bronnenconflicten meestal het gevolg van een stuurprogrammamismatch of defecte stuurprogramma's op hardwareniveau. Het defecte hardwarestuurprogramma dat de buffers toewees die nodig waren voor een toepassing, heeft het geheugen niet vrijgegeven.
Als er virtualisatiesoftware en/of hardware van derden (niet van Cisco) in gebruik zijn, onderzoekt u de versies en stuurprogramma's op mogelijke compatibiliteitsproblemen of -fouten.
Samenvatting
Om te bepalen of KNI: Out of Memory-fouten worden veroorzaakt door processen op toepassingsniveau of door onderliggende hardwarestuurprogramma's, controleert u of er aanwijzingen zijn voor achteruitgang van het DI-netwerk en dat de gebruikersruimte van KNI daalt. Als DI-netwerkdegradatie bestaat zonder een corresponderende KNI-degradatie van de gebruikersruimte, kan worden geconcludeerd dat de oorzaak zich op hardwareniveau bevindt. KNI: Uit het geheugen fouten met hardwareniveau degradatie wijzen op defecte hardwarestuurprogramma's.
Een offload van de node en het opnieuw laden van de hostcomputers waarop de betreffende StarOS virtuele functie op toepassingsniveau zich bevindt, kan de geheugenbuffers op de onderliggende computer tijdelijk wissen, wat resulteert in een tijdelijke vermindering van fouten en pakketverliezen. Dit is echter geen permanente oplossing! Pakketverliezen en KNI: Out of Memory-fouten keren terug wanneer de toestand van de bufferoverloop zich opnieuw voordoet op het defecte hardwarestuurprogramma.