Abilitare NetQ Receive Side Scaling per abilitare l'offload delle richieste vNIC in una NIC fisica. Migliora le prestazioni dei pacchetti dei dati sul lato ricezione.

Quando una scheda NIC fisica invia pacchetti a un host, lo stack di rete avanzato (ENS), in esecuzione quando il commutatore host viene configurato nella modalità Percorso dati avanzato, in tale host distribuisce i dati in diversi core logici nei nodi NUMA. Esistono due modi per configurare i motori RSS.

In qualità di amministratore di rete che desidera migliorare le prestazioni dei pacchetti in termini di velocità effettiva dei dati sul lato ricezione, si potrebbe voler prendere in considerazione uno di questi modi per configurare RSS per sfruttare i vantaggi.
Queste due modalità sono:
  • Il motore RSS è dedicato a una singola coda di vNIC: un motore RSS dedicato esegue l'offload completo di qualsiasi richiesta proveniente da una vNIC sulla scheda NIC fisica. In questa modalità, un singolo motore RSS è dedicato a una singola coda di vNIC. Migliora le prestazioni in termini di velocità effettiva perché la pNIC gestisce i dati sul lato ricezione e li condivide tra le code hardware disponibili per servire la richiesta. Le code di vNIC condividono il percorso nello stesso core logico o fastpath delle code di pNIC.
  • Il motore RSS è condiviso da più code di vNIC: in questa modalità, più code hardware vengono rese disponibili per le code di vNIC. Tuttavia, i flussi di gestione delle vNIC potrebbero non essere allineati con la coda hardware fisica che elaborerà i dati. Ciò significa che non esiste alcuna garanzia che le vNIC e le NIC fisiche saranno allineate.
Nota: Se la funzionalità Default Queue Receive Side Scaling (DRSS) è abilitata nella scheda NIC, disattivarla.

Prerequisiti

  • Gli host devono eseguire ESXi versione 7, aggiornamento 3 o successivo.
  • Assicurarsi che la scheda NIC supporti la funzionalità RSS.
  • EDP NETQ RSS è supportato da NSX 4.0 e ESXi versione 8.0 e successive. I driver della posta in arrivo supportati sono Intel40en (driver asincrono) e Mellanox nmlx. Consultare la documentazione del driver per verificare se l'implementazione RSS è compatibile con ENS.

Procedura

  1. Per abilitare NetQ/RSS, esxcli system module parameters set -m -i40en_ens -p DRSS=0,0 RSS=1,0.

    Dove DRSS=0,0 indica che DRSS è disattivato su entrambe le porte della NIC.

    RSS=1,0 indica che NETQ RSS è abilitato su una delle porte della NIC.

  2. Per scaricare il driver, eseguire vmkload_mod -u i40en_ens.
  3. Per ricaricare il driver affinché l'impostazione RSS venga applicata, eseguire vmkload_mod i40en_ens.
  4. Arrestare il manager dispositivi per attivare PCI fastconnect in modo da poter eseguire la scansione dei dispositivi e associare il driver a una scheda NIC.

    Eseguire kill -HUP 'ps | grep mgr | awk '{print $1}'.

  5. Per configurare più motori RSS che siano disponibili per servire le richieste RSS dalle vNIC, configurare questi parametri nel file .vmx della macchina virtuale.

    ethernet.pnicfeatures = '4', che indica che la funzionalità RSS è richiesta dalle vNIC.

    ethernet.ctxPerDev = '3', che indica che sono abilitati più contesti (più core logici) per elaborare ciascuna vNIC. Le macchine virtuali connesse al commutatore vSphere sono configurate per più code. Ciò significa che più core logici di un nodo NUMA possono elaborare il traffico Tx e Rx proveniente dalle vNIC.

    Quando più vNIC richiedono l'offload RSS, lo stack di rete avanzato (ENS) non esegue l'offload delle richieste RSS sulla pNIC, ma il motore RSS condiviso elabora le richieste. Per RSS condiviso, sono disponibili più code RSS, ma la condivisione del percorso di una coda di vNIC o di una coda di pNIC non è consentita.

  6. Per configurare un motore RSS dedicato per elaborare le richieste provenienti da una vNIC, configurare questi parametri nel file .vmx della macchina virtuale.

    ethernet.rssoffload=True,

    Con la configurazione precedente abilitata, le richieste RSS provenienti da una vNIC sono sottoposte a offload nella scheda NIC fisica. Solo una vNIC può eseguire l'offload delle richieste in un motore RSS. In questa modalità, le code di vNIC sono allineate alle code di pNIC.

  7. Verificare che il flusso dei pacchetti sia distribuito nelle code hardware fornite dal motore RSS.

    Eseguire i comandi seguenti.

    vsish

    get /net/pNics/vmnicX/stats

    Output di esempio:

    rxq0: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq1: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq2: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq3: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq4: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq5: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq6: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    rxq7: pkts=0 bytes=0 toFill=2047 toProc=0 noBuf=0 csumErr=0
    txq0: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq1: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq2: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq3: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq4: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq5: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq6: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0
    txq7: pkts=0 bytes=0 toFill=0 toProc=0 dropped=0