Sommario

Introduzione

Componenti usati

Architettura Iftask

Monitoraggio delle prestazioni di iftask

Statistiche

Introduzione

Questo documento descrive come monitorare le prestazioni di iftask / NPU su QvPC-DI.

Componenti usati

Le informazioni di questo documento si basano su QvPC-DI.

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Architettura Iftask

se task è un processo in QvPC-DI. Abilita la funzionalità Data Plane Development Kit (DPDK) sulla scheda virtuale della funzione di servizio (SF) e sulla scheda virtuale della funzione di controllo (CF) per le porte di rete DI e le porte di servizio. Il DPDK è un modo più efficiente per gestire gli input/output negli ambienti virtualizzati.

I driver di dispositivo dei controller di interfaccia di rete (NIC, Network Interface Controller) ad alte prestazioni vengono ora spostati nello spazio utente, evitando costosi switch di contesto (spazio utente/spazio kernel).

I driver vengono eseguiti in modalità non interrompibile nello spazio utente e i thread hanno accesso diretto alle code hardware/ai buffer circolare in questi driver NIC.

La documentazione sull'architettura è disponibile all'indirizzo:

Introduzione a Ultra Services Platform (USP) dal manuale Ultra Gateway Platform System Administration Guide.

Disponibilità per versioni diverse.

In questo diagramma è illustrata l'architettura in dettaglio (per SF):

Durante la distribuzione, una certa quantità di vCPU (Virtual Central Processing Unit) viene allocata in modo statico al processo iftask. Ciò riduce la quantità di core per le applicazioni di spazio utente (sessmgr ecc.), ma migliora notevolmente le prestazioni di I/O.

Questa allocazione viene eseguita tramite il parametro riportato di seguito nel modello param.cfg associato a ciascun file SF/CF durante la distribuzione.

- IFTASK_CORES (% di core disponibili da assegnare con iftask)

- (IFTASK_CRYPTO_CORES - argomento non trattato qui)

- (IFTASK_MCDMA_CORES - non trattato qui)

1. In un SF, il processo iftask distribuirà internamente i core assegnati in:

- Driver in modalità polling (PMD) vCPU (attività tx/rx/vnpu)

- vCPU MCDMA, trasferimento di pacchetti da iftask a sessmgr e viceversa

2. In un CF non sono richieste vCPU MCDMA, poiché i SF non ospitano processi sessmgr.

Il comando 'show cloud hardware iftask' fornisce ulteriori dettagli su questo nella distribuzione di QVPC-DI:

[local]UGP# show cloud hardware iftask

Card 1:

Total number of cores on VM:      8

Number of cores for PMD only:     0

Number of cores for VNPU only:    0

Number of cores for PMD and VNPU: 2     <--  CF: 2 out of 8 cores are assigned to iftask PMD/VNPU

Number of cores for MCDMA:        0     <--  CF: no cores allocated to MCDMA as there is no sessmgr process on CF

Number of cores for Crypto:        0

Hugepage size:           2048 kB

Total hugepages:      3670016 kB

NPUSHM hugepages:           0 kB

CPU flags: avx sse sse2 ssse3 sse4_1 sse4_2

Poll CPU's: 1 2

KNI reschedule interval: 5 us

...

Card 3:

Total number of cores on VM:      8

Number of cores for PMD only:     0

Number of cores for VNPU only:    0

Number of cores for PMD and VNPU: 2     <-- SF: 2 out of 8 core are assigned to iftask PMD/VNPU

Number of cores for MCDMA: 1            <-- SF: 1 out of 8 cores is assigned to iftak MCDMA

Number of cores for Crypto: 0

Hugepage size: 2048 kB

Total hugepages: 4718592 kB

NPUSHM hugepages: 0 kB

CPU flags: avx sse sse2 ssse3 sse4_1 sse4_2

Poll CPU's: 1 2 3

KNI reschedule interval: 5 us

Il comando 'show cloud configuration' fornirà ulteriori dettagli sui parametri utilizzati:

[local]UGP# show cloud configuration

Card 1:

Config Disk Params:

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

CARDSLOT=1

CPUID=0

CARDTYPE=0x40010100

DI_INTERFACE=BOND:TYPE:ixgbevf-1,TYPE:ixgbevf-2

DI_INTERFACE_VLANID=2111

VNFM_INTERFACE=MAC:fa:16:3e:23:aa:e9

VNFM_PROXY_ADDRS=172.16.180.3,172.16.180.5,172.16.180.6

MGMT_INTERFACE=MAC:fa:16:3e:87:23:9b

VNFM_IPV4_ENABLE=true

VNFM_IPV4_DHCP_ENABLE=true

Local Params:

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

CARDSLOT=1

CARDTYPE=0x40010100

CPUID=0

...

Card 3:

Config Disk Params:

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

CARDSLOT=3

CPUID=0

CARDTYPE=0x42030100

DI_INTERFACE=BOND:TYPE:ixgbevf-1,TYPE:ixgbevf-2

SERVICE1_INTERFACE=BOND:TYPE:ixgbevf-3,TYPE:ixgbevf-4

SERVICE2_INTERFACE=BOND:TYPE:ixgbevf-5,TYPE:ixgbevf-6

DI_INTERFACE_VLANID=2111

VNFM_INTERFACE=MAC:fa:16:3e:29:c6:b7

IFTASK_CORES=30

VNFM_IPV4_ENABLE=true

VNFM_IPV4_DHCP_ENABLE=true

Local Params:

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

CARDSLOT=3

CARDTYPE=0x42010100

CPUID=0

Monitoraggio delle prestazioni di iftask

Il processo iftask può essere monitorato in diversi modi.

Consolidare l'elenco dei comandi show:

show subscribers data-rate

show npumgr dinet utilization pps

show npumgr dinet utilization pps

show cloud monitor di-network summary

show cloud hardware iftask

show cloud configuration

show iftask stats summary

show port utilization table

show npu utilization table

show npumgr utilization information

show processes cpu

Il comando #show cpu info verbose non fornirà informazioni sui core iftask. Saranno sempre elencati con un utilizzo del 100%.

Nell'esempio seguente, i core 1,2,3 sono associati a iftask e sono elencati con un utilizzo del 100%, come previsto.

Card 3, CPU 0:

Status                : Standby, Kernel Running, Tasks Running

Load Average          : 3.12, 3.12, 3.13 (3.95 max)

Total Memory          : 16384M

Kernel Uptime         : 4D 21H 56M

Last Reading:

CPU Usage All       : 1.9% user, 0.3% sys, 0.0% io, 0.0% irq, 97.8% idle

Core 0          : 5.8% user, 0.2% sys, 0.0% io, 0.0% irq, 94.0% idle

Core 1          : Not Averaged (Poll CPU)

Core 2          : Not Averaged (Poll CPU)

Core 3          : Not Averaged (Poll CPU)

Core 4          : 2.2% user, 0.2% sys, 0.0% io, 0.0% irq, 97.6% idle

Core 5          : 0.8% user, 0.5% sys, 0.0% io, 0.0% irq, 98.7% idle

Core 6          : 0.4% user, 0.5% sys, 0.0% io, 0.0% irq, 99.1% idle

Core 7          : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.6% idle

Poll CPUs           : 3 (1, 2, 3)

Core 1          : 100.0% user, 0.0% sys, 0.0% io, 0.0% irq, 0.0% idle

Core 2          : 100.0% user, 0.0% sys, 0.0% io, 0.0% irq, 0.0% idle

Core 3          : 100.0% user, 0.0% sys, 0.0% io, 0.0% irq, 0.0% idle

Processes / Tasks   : 143 processes / 16 tasks

Network mcdmaN      : 0.002 kpps rx, 0.001 mbps rx, 0.002 kpps tx, 0.001 mbps tx

File Usage          : 1504 open files, 1627405 available

Memory Usage        : 7687M 46.9% used

Memory Details:

Static            : 330M kernel, 144M image

System            : 10M tmp, 0M buffers, 54M kcache, 79M cache

Process/Task      : 6963M (120M small, 684M huge, 6158M other)

Other             : 104M shared data

Free              : 8696M free

Usable            : 5810M usable (8696M free, 0M reclaimable, 2885M reserved by tasks)

Il comando #show npu usage table fornirà un buon riepilogo dell'utilizzo di ciascun core associato al processo iftask (su ciascuna scheda).

Nota: È importante stabilire se l'utilizzo di alcuni core è notevolmente superiore rispetto ad altri.

[local]UGP# show npu utilization table

-------iftask-------

lcore     now   5min  15min

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

01/0/1      0%     0%     0%

01/0/2      0%     0%     0%

02/0/1      0%     0%     0%

02/0/2      2%     1%     0%

03/0/1      0%     0%     0%

03/0/2      0%     0%     0%

03/0/3      0%     0%     0%

04/0/1      0%     0%     0%

04/0/2      0%     0%     0%

04/0/3      0%     0%     0%

05/0/1      0%     0%     0%

05/0/2      0%     0%     0%

05/0/3      0%     0%     0%

Comando #show npumgr usage information (comando nascosto)

Questo comando fornisce ulteriori informazioni su ciascun core iftask e sul consumo di CPU da parte di questi core.

Nota: I core PMD utilizzano la CPU su PortRX, PortTX, KNI e Cipher.

Nota: I core MCDMA utilizzano la CPU.

I core PMD e MCDMA hanno un carico pari.

In caso contrario, potrebbe essere necessaria una certa regolazione (ad esempio, l'allocazione di più/meno core MDMA).

******** show npumgr utilization information 3/0/0 *******

5-Sec Avg: lcore01| lcore02| lcore03| lcore04| lcore05| lcore06| lcore07| lcore08| lcore09| lcore10| lcore11| lcore12|

Idle:     41%|     47%|     73%|     62%|     48%|     49%|     69%|     71%|     49%|     64%|     48%|     69%|

PortRX:     32%|     36%|      0%|      0%|      0%|      0%|     31%|     29%|      0%|      0%|      0%|     31%|

PortTX:     16%|     18%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

KniRX:      3%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

McdmaRX:      0%|      0%|     11%|     15%|     22%|     21%|      0%|      0%|     20%|     14%|     20%|      0%|

Mcdma:      0%|      0%|      1%|      2%|      3%|      2%|      0%|      0%|      3%|      3%|      3%|      0%|

McdmaFlush:      0%|      0%|     15%|     21%|     27%|     27%|      0%|      0%|     27%|     18%|     28%|      0%|

Cipher:      7%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

rx kbits/sec:  173914|  257249|  248543|  224081|  319973|  299437|  450992|  380112|  391400|  325099|  355809|  399515|

rx frames/sec:   30557|   36549|   37465|   32560|   46914|   43938|   70711|   54818|   58482|   47462|   53477|   58793|

tx kbits/sec:  169641|  251958|  253930|  228760|  326714|  305750|  440773|  372187|  399806|  331914|  363491|  391002|

tx frames/sec:   30551|   36524|   37465|   32560|   46914|   43938|   70681|   54785|   58483|   47462|   53477|   58749|

5-Min Avg: lcore01| lcore02| lcore03| lcore04| lcore05| lcore06| lcore07| lcore08| lcore09| lcore10| lcore11| lcore12|

Idle:     18%|     36%|     60%|     62%|     46%|     45%|     65%|     62%|     44%|     53%|     39%|     65%|

PortRX:     29%|     45%|      0%|      0%|      0%|      0%|     35%|     38%|      0%|      0%|      0%|     35%|

PortTX:     17%|     20%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

KniRX:      3%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

Kni:      1%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

McdmaRX:      0%|      0%|     17%|     17%|     23%|     24%|      0%|      0%|     24%|     19%|     26%|      0%|

Mcdma:      0%|      0%|      2%|      2%|      3%|      3%|      0%|      0%|      4%|      3%|      4%|      0%|

McdmaFlush:      0%|      0%|     21%|     20%|     28%|     28%|      0%|      0%|     28%|     24%|     30%|      0%|

Cipher:     32%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

rx kbits/sec:  217296|  297699|  261605|  268546|  389380|  397101|  479195|  528945|  438931|  360583|  454262|  468575|

rx frames/sec:   39194|   42022|   40122|   40086|   58217|   59507|   80931|   76094|   67224|   54592|   68565|   67013|

tx kbits/sec:  211773|  291616|  267373|  274308|  397747|  405655|  467493|  517944|  448590|  368412|  464116|  458868|

tx frames/sec:   39182|   41998|   40122|   40086|   58217|   59507|   80895|   76058|   67224|   54592|   68565|   66973|

15-Min Avg: lcore01| lcore02| lcore03| lcore04| lcore05| lcore06| lcore07| lcore08| lcore09| lcore10| lcore11| lcore12|

Idle:     22%|     37%|     60%|     61%|     45%|     46%|     64%|     64%|     44%|     49%|     41%|     66%|

PortRX:     33%|     43%|      0%|      0%|      0%|      0%|     36%|     36%|      0%|      0%|      0%|     34%|

PortTX:     18%|     20%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

KniRX:      4%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

McdmaRX:      0%|      0%|     16%|     16%|     24%|     24%|      0%|      0%|     24%|     22%|     25%|      0%|

Mcdma:      0%|      0%|      2%|      2%|      3%|      3%|      0%|      0%|      4%|      4%|      4%|      0%|

McdmaFlush:      0%|      0%|     21%|     20%|     28%|     28%|      0%|      0%|     28%|     26%|     30%|      0%|

Cipher:     23%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|      0%|

rx kbits/sec:  225682|  297062|  267631|  272770|  419821|  405286|  489633|  511100|  476834|  401810|  467134|  466549|

rx frames/sec:   39670|   42772|   40892|   40834|   62740|   61170|   83540|   76519|   72158|   60242|   70707|   67961|

tx kbits/sec:  220089|  290875|  273510|  278639|  428840|  414080|  477557|  500037|  487201|  410421|  477298|  456711|

tx frames/sec:   39657|   42748|   40892|   40834|   62740|   61170|   83504|   76484|   72158|   60242|   70707|   67925|

@ tick 896633 (+ve-skew-cnt=123633, -ve-skew-cnt=0), failed samples 0

Comandi #show npumgr dinet usage pps, #show npumgr dinet usage bbps e #show port usage table

Forniscono informazioni sul carico sulle porte DI e sulle porte dei servizi.

Le prestazioni effettive dipendono dall'allocazione di NIC/CPU e CPU a iftask.

[local]UGP# show npumgr dinet utilization pps

------ Average DINet Port Utilization (in kpps) ------

Port   Type                       Current           5min             15min

Rx      Tx      Rx       Tx       Rx     Tx

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

1/0  Virtual Ethernet          0       0        0       0        0       0

2/0  Virtual Ethernet          0       0        0       0        0       0

3/0  Virtual Ethernet          0       0        0       0        0       0

4/0  Virtual Ethernet          0       0        0       0        0       0

5/0  Virtual Ethernet          0       0        0       0        0       0

[local]UGP# show npumgr dinet utilization bps

------ Average DINet Port Utilization (in mbps) ------

Port   Type                       Current           5min             15min

Rx      Tx      Rx       Tx       Rx     Tx

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

1/0  Virtual Ethernet          1       1        1       1        1       1

2/0  Virtual Ethernet          1       0        1       0        1       0

3/0  Virtual Ethernet          0       0        0       0        0       0

4/0  Virtual Ethernet          0       0        0       0        0       0

5/0  Virtual Ethernet          0       0        0       0        0       0

[local]UGP# show port utilization table

------ Average Port Utilization (in mbps) ------

Port   Type                       Current           5min             15min

Rx      Tx      Rx       Tx       Rx     Tx

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

1/1  Virtual Ethernet          0       0        0       0        0       0

2/1  Virtual Ethernet          0       0        0       0        0       0

3/10 Virtual Ethernet          0       0        0       0        0       0

3/11 Virtual Ethernet          0       0        0       0        0       0

4/10 Virtual Ethernet          0       0        0       0        0       0

4/11 Virtual Ethernet          0       0        0       0        0       0

5/10 Virtual Ethernet          0       0        0       0        0       0

5/11 Virtual Ethernet          0       0        0       0        0       0

Comando #show cloud monitor di-network summary

Questo comando esegue il monitoraggio dell'integrità della rete DI. Le carte inviano heartbeat l'una all'altra, e la Perdita viene monitorata. In un sistema sano, non viene segnalata alcuna perdita.

[local]UGP# show cloud monitor di-network summary

Card 3 Heartbeat Results:

ToCard   Health   5MinLoss   60MinLoss

1      Good       0.00%      0.00%

2      Good       0.00%      0.00%

4      Good       0.00%      0.00%

5      Good       0.00%      0.00%

Card 4 Heartbeat Results:

ToCard   Health   5MinLoss   60MinLoss

1      Good       0.00%      0.00%

2      Good       0.00%      0.00%

3      Good       0.00%      0.00%

5      Good       0.00%      0.00%

Card 5 Heartbeat Results:

ToCard   Health   5MinLoss   60MinLoss

1      Good       0.00%      0.00%

2      Good       0.00%      0.00%

3      Good       0.00%      0.00%

4      Good       0.00%      0.00%

Riepilogo statistiche comando #show iftask

Con carichi NPU più elevati, è possibile che il traffico venga interrotto.

Per valutare questa condizione, è possibile eseguire l'output di riepilogo dello stato del comando #show iftask.

Nota: Il valore di DISCARDS può essere diverso da zero.

Nota: non incrementare tutti gli altri contatori.

[local]VPC# show iftask stats summary^M

Thursday January 18 16:01:29 IST 2018

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

Counter                               SF3         SF4         SF5         SF6         SF7         SF8         SF9         SF10         SF11         SF12         ___TOTAL___

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

svc_rx                       32491861127   16545600654   37041906441   37466889835   32762859630   34931554543   38861410897   16025531220   33566817747   32823851780  312518283874

svc_tx                       46024774071   14811663244   40316226774   39926898585   40803541378   48718868048   35252698559    1738016438    4249156512   40356388348  312198231957

di_rx                        42307187425   14637310721   40072487209   39584697117   41150445596   44534022642   31867253533    1731310419    4401095653   40711142205  300996952520

di_tx                        28420090751   16267050562   36423298668   36758561246   32731606974   30366650898   35201117980   16009902791   33536789041   32815316570  298530385481

__ALL_DROPS__                    1932492           252         17742        790473         11228        627018        844812         60402             0        460830       4745249

svc_tx_drops                           0             0             0             0             0             0             0             0             0             0             0

di_rx_drops                            0             1             0             0            49           113           579         30200             0          4888         35830

di_tx_drops                            0             0             0             0             0             0             0             0             0             0             0

sw_rss_enq_drops                       0             0             0             0             0             0             0             0             0             0             0

kni_thread_drops                       0             0             0             0             0             0             0             0             0             0             0

kni_drops                              0             1             0             0             0             0           124         30200             0             0         30325

mcdma_drops                            0             0             0           168            80        194535        758500             0             0         11628        964911

mux_deliver_hop_drops                  0             0             0             0             0             0             0             0             0          1019          1019

mux_deliver_drops                      0             0             0             0             0             0             0             0             0             0             0

mux_xmit_failure_drops                 0             3             0             0             0             0             7             2             0             0            12

mc_dma_thread_enq_drops                0             0             0             0            49           113           580             0             0          3457          4199

sw_tx_egress_enq_drops           1904329             0             0        787971          9004        429214         85022             0             0        429810       3645350

cpeth0_drops                           0             0             0             0             0             0             0             0             0             0             0

mcdma_summary_drops                28163           247         17742          2334          2046          3043             0             0             0         10028         63603

fragmentation_err                      0             0             0             0             0             0             0             0             0             0             0

reassembly_err                         0             0             0             0             0             0             0             0             0             0             0

reassembly_ring_enq_err                0             0             0             0             0             0             0             0             0             0             0

__DISCARDS__                    20331090       9051092      23736055      23882896      23807520      24231716      24116576       8944291      22309474      20135799      20135799

Statistiche

Lo schema Bulkstat è sviluppato per le prestazioni QPVC-DI relative a iftask/dinet. Ciò è utile per monitorare il dinet, le porte di servizio e l'utilizzo della npu dal punto di vista delle prestazioni e del carico:

card schema iftask-dinet format EMS,IFTASKDINET,%date%,%time%,%dinet-rxpkts-curr%,%dinet-txpkts-curr%,%dinet-rxpkts-5minave%,%dinet-txpkts-5minave%,%dinet-rxpkts-15minave%,%dinet-txpkts-15minave%,%dinet-txdrops-curr%,%dinet-txdrops-5minave%,%dinet-txdrops-15minave%,%npuutil-now%

file 2

port schema iftask-port format EMS,IFTASKPORT,%date%,%time%,%util-rxpkts-curr%,%util-txpkts-curr%,%util-rxpkts-5min%,%util-txpkts-5min%,%util-rxpkts-15min%,%util-txpkts-15min%,%util-txdrops-curr%,%util-txdrops-5min%,%util-txdrops-15min%

file 3

card schema npu-util format EMS,NPUUTIL,%date%,%time%,%npuutil-now%,%npuutil-5minave%,%npuutil-15minave%,%npuutil-rxbytes-5secave%,%npuutil-txbytes-5secave%,%npuutil-rxbytes-5minave%,%npuutil-txbytes-5minave%,%npuutil-rxbytes-15minave%,%npuutil-txbytes-15minave%,%npuutil-rxpkts-5secave%,%npuutil-txpkts-5secave%,%npuutil-rxpkts-5minave%,%npuutil-txpkts-5minave%,%npuutil-rxpkts-15minave%,%npuutil-txpkts-15minave%