Sommario

Introduzione

Introduzione

Fasi da esaminare

Passaggio 1. Osservare i sintomi

KNI: Memoria insufficiente nei log

Errori di percorso EGTPC

Passaggio 2. Verifica riduzione prestazioni della rete DI

visualizzazione dettagliata dello stato di ripristino della sessione

mostra dettagli di-network monitor cloud

show cloud monitor controlplane

mostra piano dati del monitor del cloud

Passaggio 3. Controlla le gocce KNI di Userspace

mostra statistiche iftask

Passaggio 4. Controllare i driver hardware

Riepilogo

Introduzione

Questo documento descrive come determinare se StarOS KNI: Out of Memory logs sono causati da problemi nell'applicazione StarOS o da driver hardware.

Introduzione

Il modulo KNI (Kernel Network Interface), all'interno del processo IFTASK (DPDK Internal Forwarder), è un meccanismo che consente ai programmi dello spazio utente di ricevere pacchetti direttamente da un'interfaccia di rete, ignorando completamente la rete Linux e lo stack IP Linux.

KNI: gli avvisi di limitazione della velocità dei registri di memoria esaurita vengono generati quando si verifica un problema di contesa di risorsa che interessa il modulo KNI.

1. I buffer di memoria non vengono cancellati a livello di bare metal (hardware), causando un sovraccarico del buffer.

2. Lo spazio dei pool KNI, dai quali iftask alloca il buffer dei messaggi per questi pacchetti, è esaurito.

3. La funzione virtuale cerca altri pacchetti, ma la funzione fisica risponde che non ha nulla.

4. Quando si verifica la condizione KNI: Out of Memory, l'iftask entra nel pool di memoria di backup per allocare ed elaborare ulteriormente il pacchetto. Se anche il pool di backup esaurisce la memoria, il sistema scarta i pacchetti.

5. Poiché iftask non è in grado di leggere la frammentazione di pacchetti provenienti dal kernel, il log KNI: Out of Memory viene generato su StarOS.

Trigger per KNI: condizione di memoria insufficiente:

I potenziali trigger per la condizione di overflow del buffer possono variare, come l'esecuzione di applicazioni SFTP o SCP o un trasferimento di file molto grande tra schede CF e SF.

Fasi da esaminare

Passaggio 1. Osservare i sintomi

Passaggio 2. Verifica riduzione prestazioni della rete DI

Passaggio 3. Controlla le gocce KNI di Userspace

Passaggio 4. Controllare i driver hardware

Passaggio 1. Osservare i sintomi

Correlazione tra i tempi di KNI: errori di memoria esaurita e altri sintomi, come perdite di pacchetti o degradazioni del livello applicazione (errori di percorso egtpc).

KNI: Memoria insufficiente nei log

- In StarOS Syslogs, è possibile vedere i log che indicano che l'interfaccia di rete kernel è fuori memoria.

2023-Nov-16+09:18:03.205 [iftask 214701 error] [1/0/9602 <evlogd:0> 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

- Se la memoria di backup è esaurita, è possibile che vengano visualizzati messaggi di errore indicanti che anche la memoria del pool di backup è esaurita.

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)

- Nei log di IFTask, presenti nella directory tmp nella shell di debug, è possibile osservare gli errori KNI: Out of Memory:

Wed Nov 15 17:20:30 2023 PID:7387 KNI: Out of memory, kni port cpbond0, socket_id=0, total=-759247296, iter=25

Errori di percorso EGTPC

- Picchi nei guasti del percorso gtpc a vari peer possono verificarsi con la causa Nessuna risposta dal peer può verificarsi durante il tempo della perdita del pacchetto.

2023-10-23T00:14:33.813+00:00 Nodename evlogd: [local-60sec33.780] [egtpmgr 143137 info] [6/0/12364 <egtpegmgr:3> egtpmgr_pm.c:905] [context: mme_ctx, contextID: 3]  [software internal system critical-info syslog] context: mme_ctx, service : mme_svc_egtp, self addr: <X.X.X.X>, GTP-C path failure for peer <Y.Y.Y.Y>, peer session count marked: 0, egtpmgr state SRP_SESS_STATE_ACTIVE

Passaggio 2. Verifica riduzione prestazioni della rete DI

Individuare le connessioni che stanno subendo il degrado. Se osservate in modo duraturo, percentuali maggiori di perdita o perdita negli output di integrità della rete DI possono indicare problemi operativi o di configurazione della rete DI, sovraccarico del traffico o problemi di VM o host.

visualizzazione dettagliata dello stato di ripristino della sessione

- Usare gli output verbose per visualizzare lo stato di ripristino della sessione per identificare la scheda a funzioni virtuali che funge da scheda Demux.

******** 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

mostra dettagli di-network monitor cloud

- Usare gli output "show cloud monitor di-network detail" per identificare le connessioni di-network tra le schede a funzione virtuale che hanno una diminuzione degli heartbeat.

- Sono mostrate le cadute in heartbeat dalle schede CF e SF alla scheda SF 6. Le uscite per le schede CF e SF ad altre schede CF e SF non mostrano cali di battito.

******** 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%

show cloud monitor controlplane

- Usare show cloud monitor control output per identificare le connessioni di rete di cui si è verificata la riduzione.

******** 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%

mostra piano dati del monitor del cloud

- Utilizzare show cloud monitor dataplane output per identificare le connessioni di rete di cui si è verificata la degradazione e per identificare eventuali degradazioni unidirezionali tra le schede di funzione virtuali.

******** 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%

Passaggio 3. Controlla le gocce KNI di Userspace

mostra statistiche iftask

- Raccogliere più volte show iftask stats output per verificare che le cadute KNI non siano incrementate nel livello applicazione spazio utente IFTASK (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

-----------------------------------------------------------------------------------------------

Passaggio 4. Controllare i driver hardware

Una volta eliminato il livello dell'applicazione dalla responsabilità, concentrarsi sui driver sottostanti a livello hardware per risolvere gli errori KNI: Out of Memory.

Poiché il driver hardware bare-metal alloca una determinata quantità di buffer per ogni funzione virtuale, i problemi di contesa delle risorse sono in genere il risultato di una mancata corrispondenza del driver o di driver difettosi a livello hardware. Il driver hardware difettoso che ha allocato i buffer necessari per un'applicazione non ha rilasciato la memoria.

Se sono in uso software e/o hardware di virtualizzazione di terze parti (non Cisco), esaminare le versioni e i driver per individuare potenziali incompatibilità o difetti.

Riepilogo

Per determinare se KNI: Errori di memoria esaurita, sono causati da processi a livello di applicazione o da driver hardware sottostanti, verificare la presenza di prove di degradazione della rete DI e cali KNI dello spazio utente. Se il degrado della rete DI esiste senza una degradazione KNI dello spazio utente corrispondente, la causa può essere conclusa a livello hardware. KNI: Gli errori di memoria esaurita con riduzione del livello hardware indicano driver hardware difettosi.

L'offload del nodo e il ricaricamento dei computer host su cui risiede la funzione virtuale StarOS a livello di applicazione interessata possono cancellare temporaneamente i buffer di memoria sul computer sottostante, con una conseguente riduzione temporanea degli errori e delle perdite di pacchetti. Tuttavia, questa non è una soluzione permanente! Perdite di pacchetti e KNI: si verificano errori di memoria insufficiente quando la condizione di overflow del buffer si ripete nel driver hardware difettoso.