Risolvere i problemi relativi al driver del ENA kernel su Linux - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risolvere i problemi relativi al driver del ENA kernel su Linux

Elastic Network Adapter (ENA) è progettato per migliorare lo stato del sistema operativo e ridurre le possibilità di interruzione a lungo termine a causa di un comportamento inatteso dell'hardware e/o di guasti. La ENA struttura dell'unità rende i guasti dei dispositivi o dei driver il più chiari possibile al sistema. Questo argomento fornisce le informazioni relative alla risoluzione dei problemi diENA.

Se è impossibile connettersi all'istanza, iniziare dalla sezione Risolvere i problemi di connettività.

Se si verifica un peggioramento delle prestazioni dopo la migrazione a un tipo di istanza di sesta generazione, consultare l'articolo Cosa devo fare prima di eseguire la migrazione della mia EC2 istanza a un'istanza di sesta generazione per assicurarmi di ottenere le massime prestazioni di rete?

Se è possibile connettersi all'istanza, è possibile raccogliere informazioni diagnostiche utilizzando i meccanismi di rilevamento e riparazione dei guasti descritti nelle sezioni successive di questo argomento.

Risolvere i problemi di connettività

Se si perde la connettività durante l'abilitazione della rete avanzata, il modulo ena potrebbe essere incompatibile con il kernel dell'istanza attualmente in esecuzione. Questo può accadere se si installa il modulo per una specifica versione del kernel (senza dkms o con un file dkms.conf non configurato correttamente), quindi il kernel di istanza viene aggiornato. Se il kernel di istanza caricato al momento dell'avvio non ha il modulo ena correttamente installato, l'istanza non riconoscerà l'adattatore di rete e l'istanza diventerà irraggiungibile.

Se si attivano le reti avanzate per un'istanza PV oAMI, l'istanza può risultare irraggiungibile.

Se l'istanza diventa irraggiungibile dopo aver abilitato le reti avanzate conENA, è possibile disattivare l'enaSupportattributo per l'istanza e quest'ultima tornerà all'adattatore di rete originale.

Disattivare le reti avanzate con ENA (istanze EBS supportate da -supported)
  1. Dal computer locale, arresta l'istanza utilizzando la EC2 console Amazon o uno dei comandi seguenti: stop-instances (AWS CLI), Stop-EC2Instance().AWS Tools for Windows PowerShell

    Suggerimento

    Se si utilizza un'istanza supportata da instance store, non è possibile arrestare l'istanza. Passa invece a Disattivare le reti avanzate con ENA (instance store).

  2. Dal computer locale, disattivare l'attributo delle reti avanzate utilizzando il comando seguente.

  3. Dal computer locale, avviare l'istanza utilizzando la EC2 console Amazon o uno dei comandi seguenti: start-instances (AWS CLI), Start-EC2Instance().AWS Tools for Windows PowerShell

  4. (Facoltativo) Connettersi all'istanza e provare a reinstallare il modulo ena con la versione del kernel attuale seguendo i passaggi in Abilita una rete avanzata con ENA le tue EC2 istanze.

Disattivare le reti avanzate con ENA (istanze supportate da instance store)

Se l'istanza è supportata da instance store, creare una nuova istanza AMI come descritto in. Crea un'istanza supportata dall'archivio AMI Assicurarsi di disattivare l'enaSupportattributo delle reti avanzate durante la registrazione diAMI.

  • register-image (AWS CLI)

    aws ec2 register-image --no-ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    PS C:\> Register-EC2Image -EnaSupport $false ...

Meccanismo keep-alive

Il ENA dispositivo segnala gli eventi keep-alive con una frequenza fissa (di solito una volta al secondo). Il ENA driver è dotato di un meccanismo watchdog che controlla la presenza di questi messaggi keep-alive. Se sono presenti uno o più messaggi, il watchdog viene riarrestato, altrimenti il driver ritiene che il dispositivo abbia subito un guasto e procede come segue:

  • Scarica le sue statistiche attuali su syslog

  • Reimposta il dispositivo ENA

  • Reimposta lo stato del ENA driver

La procedura di ripristino sopra descritta può provocare una perdita di traffico per un breve periodo di tempo (TCPle connessioni devono poter essere ripristinate), ma non dovrebbe influire in altro modo sull'utente.

Il ENA dispositivo può anche richiedere indirettamente una procedura di ripristino del dispositivo, non inviando una notifica keep-alive, per esempio se il ENA dispositivo raggiunge uno stato sconosciuto dopo aver caricato una configurazione irrecuperabile.

Di seguito è riportato un esempio della procedura di ripristino:

[18509.800135] ena 0000:00:07.0 eth1: Keep alive watchdog timeout. // The watchdog process initiates a reset [18509.815244] ena 0000:00:07.0 eth1: Trigger reset is on [18509.825589] ena 0000:00:07.0 eth1: tx_timeout: 0 // The driver logs the current statistics [18509.834253] ena 0000:00:07.0 eth1: io_suspend: 0 [18509.842674] ena 0000:00:07.0 eth1: io_resume: 0 [18509.850275] ena 0000:00:07.0 eth1: wd_expired: 1 [18509.857855] ena 0000:00:07.0 eth1: interface_up: 1 [18509.865415] ena 0000:00:07.0 eth1: interface_down: 0 [18509.873468] ena 0000:00:07.0 eth1: admin_q_pause: 0 [18509.881075] ena 0000:00:07.0 eth1: queue_0_tx_cnt: 0 [18509.888629] ena 0000:00:07.0 eth1: queue_0_tx_bytes: 0 [18509.895286] ena 0000:00:07.0 eth1: queue_0_tx_queue_stop: 0 ....... ........ [18511.280972] ena 0000:00:07.0 eth1: free uncompleted tx skb qid 3 idx 0x7 // At the end of the down process, the driver discards incomplete packets. [18511.420112] [ENA_COM: ena_com_validate_version] ena device version: 0.10 //The driver begins its up process [18511.420119] [ENA_COM: ena_com_validate_version] ena controller version: 0.0.1 implementation version 1 [18511.420127] [ENA_COM: ena_com_admin_init] ena_defs : Version:[b9692e8] Build date [Wed Apr 6 09:54:21 IDT 2016] [18512.252108] ena 0000:00:07.0: Device watchdog is Enabled [18512.674877] ena 0000:00:07.0: irq 46 for MSI/MSI-X [18512.674933] ena 0000:00:07.0: irq 47 for MSI/MSI-X [18512.674990] ena 0000:00:07.0: irq 48 for MSI/MSI-X [18512.675037] ena 0000:00:07.0: irq 49 for MSI/MSI-X [18512.675085] ena 0000:00:07.0: irq 50 for MSI/MSI-X [18512.675141] ena 0000:00:07.0: irq 51 for MSI/MSI-X [18512.675188] ena 0000:00:07.0: irq 52 for MSI/MSI-X [18512.675233] ena 0000:00:07.0: irq 53 for MSI/MSI-X [18512.675279] ena 0000:00:07.0: irq 54 for MSI/MSI-X [18512.772641] [ENA_COM: ena_com_set_hash_function] Feature 10 isn't supported [18512.772647] [ENA_COM: ena_com_set_hash_ctrl] Feature 18 isn't supported [18512.775945] ena 0000:00:07.0: Device reset completed successfully // The reset process is complete

Timeout lettura registro

L'ENAarchitettura suggerisce un utilizzo limitato delle operazioni di lettura degli I/O (MMIO) mappati in memoria. MMIOi registri sono accessibili dal driver del ENA dispositivo solo durante la procedura di inizializzazione.

Se i log del driver (disponibili nell'output dmesg) indicano errori nelle operazioni di lettura, ciò può essere causato da un driver incompatibile o compilato in modo errato, da un dispositivo hardware occupato o da un guasto hardware.

Le voci di log intermittenti che indicano errori nelle operazioni di lettura non devono essere considerate un problema; in questo caso il driver le riproverà. Tuttavia, una sequenza di voci di log contenenti errori di lettura indica un problema al driver o all'hardware.

Di seguito è riportato un esempio di voce di log del driver che indica un errore nell'operazione di lettura dovuto a un timeout:

[ 47.113698] [ENA_COM: ena_com_reg_bar_read32] reading reg failed for timeout. expected: req id[1] offset[88] actual: req id[57006] offset[0]  [ 47.333715] [ENA_COM: ena_com_reg_bar_read32] reading reg failed for timeout. expected: req id[2] offset[8] actual: req id[57007] offset[0]  [ 47.346221] [ENA_COM: ena_com_dev_reset] Reg read32 timeout occurred

Statistiche

Se si verificano prestazioni di rete insufficienti o problemi di latenza, è necessario recuperare le statistiche del dispositivo ed esaminarle. Si possono ottenere tali statistiche utilizzando ethtool, come mostrato di seguito.

[ec2-user ~]$ ethtool -S ethN NIC statistics: tx_timeout: 0 suspend: 0 resume: 0 wd_expired: 0 interface_up: 1 interface_down: 0 admin_q_pause: 0 bw_in_allowance_exceeded: 0 bw_out_allowance_exceeded: 0 pps_allowance_exceeded: 0 conntrack_allowance_available: 450878 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0 queue_0_tx_cnt: 4329 queue_0_tx_bytes: 1075749 queue_0_tx_queue_stop: 0 ...

I seguenti parametri di output del comando sono descritti di seguito:

tx_timeout: N

Numero di volte in cui il watchdog Netdev è stato attivato.

suspend: N

Numero di volte in cui il driver ha eseguito un'operazione di sospensione.

resume: N

Numero di volte in cui il driver ha eseguito un'operazione di ripresa.

wd_expired: N

Numero di volte in cui il driver non ha ricevuto l'evento keep-alive nei tre secondi precedenti.

interface_up: N

Numero di volte in cui l'ENAinterfaccia è stata attivata.

interface_down: N

Numero di volte in cui l'ENAinterfaccia è stata disattivata.

admin_q_pause: N

Numero di volte in cui la coda di amministrazione non è stata trovata in uno stato di esecuzione.

bw_in_allowance_exceeded: N

Il numero di pacchetti accordati o rilasciati perché la larghezza di banda aggregata in ingresso ha superato il valore massimo per l'istanza.

bw_out_allowance_exceeded: N

Il numero di pacchetti accodati o rilasciati perché la larghezza di banda aggregata in uscita ha superato il valore massimo per l'istanza.

pps_allowance_exceeded: N

Il numero di pacchetti in coda o rilasciati perché il valore bidirezionale ha PPS superato il valore massimo per l'istanza. Questo limite conta anche i rilasci di Egress Fragment che superano i 1024 per volta. PPS ENI

conntrack_allowance_available: N

Il numero di connessioni tracciate che possono essere stabilite dall'istanza prima di raggiungere il limite Connessioni tracciate di quel tipo di istanza. Disponibile solo per le istanze basate su Nitro. Non supportato con FreeBSD istanze o DPDK ambienti.

conntrack_allowance_exceeded: N

Il numero di pacchetti accodati o rilasciati perché il rilevamento delle connessioni ha superato il valore massimo per l'istanza e non è stato possibile stabilire nuove connessioni. Ciò può comportare la perdita di pacchetti per il traffico da o verso l'istanza.

linklocal_allowance_exceeded: N

Il numero di pacchetti accodati o rilasciati perché il PPS traffico verso i servizi proxy locali ha superato il valore massimo per l'interfaccia di rete. Ciò influisce sul traffico verso il DNS servizio, il servizio di metadati dell'istanza e il servizio Amazon Time Sync.

queue_N_tx_cnt: N

Numero di pacchetti trasmessi per questa coda.

queue_N_tx_bytes: N

Numero di byte trasmessi per questa coda.

queue_N_tx_queue_stop: N

Numero di volte in cui la coda N era pieno e si fermò.

queue_N_tx_queue_wakeup: N

Numero di volte in cui la coda N ripreso dopo essersi arrestata.

queue_N_tx_dma_mapping_err: N

Conteggio errori di accesso diretto alla memoria. Se questo valore non è pari a 0, significa che le risorse di sistema sono scarse.

queue_N_tx_linearize: N

Numero di volte in cui è stata tentata SKB la linearizzazione per questa coda.

queue_N_tx_linearize_failed: N

Numero di volte in cui la SKB linearizzazione non è andata a buon fine per questa coda.

queue_N_tx_napi_comp: N

Numero di volte in cui il gestore napi ha chiamato napi_complete per questa coda.

queue_N_tx_tx_poll: N

Numero di volte in cui il gestore napi è stato programmato per questa coda.

queue_N_tx_doorbells: N

Numero di campanelli di trasmissione per questa coda.

queue_N_tx_prepare_ctx_err: N

Numero di volte in cui ena_com_prepare_tx non è andato a buon fine per questa coda.

queue_N_tx_bad_req_id: N

req_id non valido per questa coda. Il req_id valido è zero, meno la queue_size, meno 1.

queue_N_tx_llq_buffer_copy: N

Numero di pacchetti la cui dimensione delle intestazioni è maggiore della voce llq per questa coda.

queue_N_tx_missed_tx: N

Numero di pacchetti trasmessi lasciati incompleti per questa coda.

queue_N_tx_unmask_interrupt: N

Numero di volte in cui l'interrupt tx è stato smascherato per questa coda.

queue_N_rx_cnt: N

Numero di pacchetti ricevuti per questa coda.

queue_N_rx_bytes: N

Numero di byte ricevuti per questa coda.

queue_N_rx_rx_copybreak_pkt: N

Numero di volte in cui la coda rx ha ricevuto un pacchetto inferiore alla dimensione del pacchetto rx_copybreak per questa coda.

queue_N_rx_csum_good: N

Numero di volte in cui la coda rx ha ricevuto un pacchetto in cui il checksum è stato controllato ed era corretto per questa coda.

queue_N_rx_refil_partial: N

Numero di volte in cui il driver non è riuscito a riempire la parte vuota della coda rx con i buffer per questa coda. Se questo valore non è pari a 0, significa che le risorse di memoria sono scarse.

queue_N_rx_bad_csum: N

Numero di volte che la coda rx ha avuto un checksum negativo per questa coda (solo se è supportato l'offload del checksum).

queue_N_rx_page_alloc_fail: N

Numero di volte in cui l'assegnazione della pagina non è andata a buon fine per questa coda. Se questo valore non è pari a 0, significa che le risorse di memoria sono scarse.

queue_N_rx_skb_alloc_fail: N

Numero di volte in cui l'SKBassegnazione non è andata a buon fine per questa coda. Se questo valore non è pari a 0, significa che le risorse di sistema sono scarse.

queue_N_rx_dma_mapping_err: N

Conteggio errori di accesso diretto alla memoria. Se questo valore non è pari a 0, significa che le risorse di sistema sono scarse.

queue_N_rx_bad_desc_num: N

Troppi buffer per pacchetto. Se questo valore non è pari a 0, significa che si utilizzano buffer molto piccoli.

queue_N_rx_bad_req_id: N

Il req_id per questa coda non è valido. Il req_id valido è compreso tra [0, queue_size - 1].

queue_N_rx_empty_rx_ring: N

Numero di volte in cui la coda rx è stata vuota per questa coda.

queue_N_rx_csum_unchecked: N

Numero di volte in cui la coda rx ha ricevuto un pacchetto il cui checksum non è stato controllato per questa coda.

queue_N_rx_xdp_aborted: N

Il numero di volte in cui un XDP pacchetto è stato classificato come _. XDP ABORT

queue_N_rx_xdp_drop: N

Il numero di volte in cui un XDP pacchetto è stato classificato come XDP _. DROP

queue_N_rx_xdp_pass: N

Il numero di volte in cui un XDP pacchetto è stato classificato come XDP _. PASS

queue_N_rx_xdp_tx: N

Numero di volte in cui un XDP pacchetto è stato classificato come XDP _TX.

queue_N_rx_xdp_invalid: N

Numero di volte in cui il codice XDP restituito per il pacchetto non era valido.

queue_N_rx_xdp_redirect: N

Il numero di volte in cui un XDP pacchetto è stato classificato come XDP _. REDIRECT

queue_N_xdp_tx_cnt: N

Numero di pacchetti trasmessi per questa coda.

queue_N_xdp_tx_bytes: N

Numero di byte trasmessi per questa coda.

queue_N_xdp_tx_queue_stop: N

Numero di volte in cui questa coda era piena e si è arrestata.

queue_N_xdp_tx_queue_wakeup: N

Numero di volte in cui questa coda ha ripreso dopo essersi arrestata.

queue_N_xdp_tx_dma_mapping_err: N

Conteggio errori di accesso diretto alla memoria. Se questo valore non è pari a 0, significa che le risorse di sistema sono scarse.

queue_N_xdp_tx_linearize: N

Numero di volte in cui è stata tentata la linearizzazione del XDP buffer per questa coda.

queue_N_xdp_tx_linearize_failed: N

Numero di volte in cui la linearizzazione del XDP buffer non è andata a buon fine per questa coda.

queue_N_xdp_tx_napi_comp: N

Numero di volte in cui il gestore napi ha chiamato napi_complete per questa coda.

queue_N_xdp_tx_tx_poll: N

Numero di volte in cui il gestore napi è stato programmato per questa coda.

queue_N_xdp_tx_doorbells: N

Numero di campanelli di trasmissione per questa coda.

queue_N_xdp_tx_prepare_ctx_err: N

Numero di volte in cui ena_com_prepare_tx non è andato a buon fine per questa coda. Questo valore deve essere sempre zero; altrimenti, consultare i log del driver.

queue_N_xdp_tx_bad_req_id: N

Il req_id per questa coda non è valido. Il req_id valido è compreso tra [0, queue_size - 1].

queue_N_xdp_tx_llq_buffer_copy: N

Numero di pacchetti che hanno copiato le intestazioni utilizzando la copia del buffer llq per questa coda.

queue_N_xdp_tx_missed_tx: N

Numero di volte in cui una voce di coda tx ha perso un timeout di completamento per questa coda.

queue_N_xdp_tx_unmask_interrupt: N

Numero di volte in cui l'interrupt tx è stato smascherato per questa coda.

ena_admin_q_aborted_cmd: N

Il numero di comandi di amministrazione che sono stati interrotti. Questo solitamente accade durante la procedura di auto-ripristino.

ena_admin_q_submitted_cmd: N

Numero di campanelli di coda di amministrazione.

ena_admin_q_completed_cmd: N

Numero di completamenti di coda di amministrazione.

ena_admin_q_out_of_space: N

Numero di volte in cui il driver ha tentato di inviare un nuovo comando di amministrazione, ma la coda era piena.

ena_admin_q_no_completion: N

Numero di volte in cui il driver non ha ricevuto un completamento di amministrazione per un comando.

Log di errore driver in Syslog

Il ENA driver scrive messaggi di log a syslog durante l'avvio del sistema. In caso di problemi, è possibile esaminare questi log per cercare errori. Di seguito è riportato un esempio di informazioni registrate dal ENA driver in syslog durante l'avvio del sistema, insieme ad alcune annotazioni per la selezione dei messaggi.

Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 478.416939] [ENA_COM: ena_com_validate_version] ena device version: 0.10 Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 478.420915] [ENA_COM: ena_com_validate_version] ena controller version: 0.0.1 implementation version 1 Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.256831] ena 0000:00:03.0: Device watchdog is Enabled Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.672947] ena 0000:00:03.0: creating 8 io queues. queue size: 1024 Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.680885] [ENA_COM: ena_com_init_interrupt_moderation] Feature 20 isn't supported // Interrupt moderation is not supported by the device Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.691609] [ENA_COM: ena_com_get_feature_ex] Feature 10 isn't supported // RSS HASH function configuration is not supported by the device Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.694583] [ENA_COM: ena_com_get_feature_ex] Feature 18 isn't supported //RSS HASH input source configuration is not supported by the device Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.697433] [ENA_COM: ena_com_set_host_attributes] Set host attribute isn't supported Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.701064] ena 0000:00:03.0 (unnamed net_device) (uninitialized): Cannot set host attributes Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 479.704917] ena 0000:00:03.0: Elastic Network Adapter (ENA) found at mem f3000000, mac addr 02:8a:3c:1e:13:b5 Queues 8 Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 480.805037] EXT4-fs (xvda1): re-mounted. Opts: (null) Jun 3 22:37:46 ip-172-31-2-186 kernel: [ 481.025842] NET: Registered protocol family 10
Quali errori posso ignorare?

I seguenti avvisi, che possono apparire nei log di errore del sistema, possono essere ignorati per Elastic Network Adapter:

Set host attribute isn't supported (L'impostazione dell'attributo dell'host non è supportata)

Gli attributi dell'host non sono supportati da questo dispositivo.

failed to alloc buffer for rx queue (allocazione del buffer per la coda rx non riuscita)

Si tratta di un errore recuperabile, che indica che potrebbe essersi verificato un problema di pressione di memoria quando l'errore è stato generato.

Funzionalità X non è supportato

La caratteristica a cui si fa riferimento non è supportata da Elastic Network Adapter. Valori possibili per X includono:

  • 10: la configurazione della funzione RSS Hash non è supportata per questo dispositivo.

  • 12: la configurazione RSS della tabella indiretto non è supportata per questo dispositivo.

  • 18: la configurazione dell'Input RSS Hash Hash non è supportata per questo dispositivo.

  • 20: la moderazione dell'interruzione non è supportata per questo dispositivo.

  • 27: il driver Elastic Network Adapter non supporta il polling delle funzionalità Ethernet da snmpd.

Configurazione non riuscita AENQ

L'Elastic Network Adapter non supporta AENQ la configurazione.

Tentativo di impostare eventi non supportati AENQ

Questo errore indica un tentativo di impostare un gruppo di AENQ eventi non supportato dall'Elastic Network Adapter.

Notifiche di configurazione non ottimale

Il ENA dispositivo rileva le impostazioni di configurazione non ottimali nel driver che è possibile modificare. Il dispositivo notifica il ENA driver e registra un avviso sulla console. Nell'esempio seguente viene illustrato il formato del messaggio di avviso.

Sub-optimal configuration notification code: 1. Refer to AWS ENA documentation for additional details and mitigation options.

L'elenco seguente mostra i dettagli del codice di notifica e le operazioni consigliate per gli esiti di configurazione non ottimali.

  • Codice 1: ENA Express con LLQ configurazione ampia non è consigliato

    ENAExpress ENI è configurato con wideLLQ. Questa configurazione non è ottimale e potrebbe influire sulle prestazioni di ENA Express. Si consiglia di disattivare LLQ le impostazioni estese quando si utilizzano ENA Express, ENIs come indicato di seguito.

    sudo rmmod ena && sudo modprobe ena force_large_llq_header=0

    Per ulteriori informazioni sulla configurazione ottimale di ENA Express, consulta la paginaMigliora le prestazioni di rete tra EC2 le istanze con Express ENA.

  • Codice 2: ENA Express ENI con una profondità di coda Tx non ottimale non è consigliato

    ENAExpress ENI è configurato con una profondità di coda Tx non ottimale. Questa configurazione potrebbe influire sulle prestazioni di ENA Express. Si consiglia di estendere tutte le code Tx al valore massimo per l'interfaccia di rete quando si utilizza ENA ExpressENIs, come indicato di seguito.

    È possibile eseguire i seguenti ethtool comandi per regolare le dimensioni. LLQ Per ulteriori informazioni su come controllare, interrogare e abilitare wide-LLQ, consulta l'argomento Large Low-Latency Queue (LargeLLQ) del driver del kernel Linux per la documentazione ENA nel repository Amazon Drivers. GitHub

    ethtool -g interface

    Imposta le code Tx alla profondità massima:

    ethtool -G interface tx depth

    Per ulteriori informazioni sulla configurazione ottimale di ENA Express, consulta la paginaMigliora le prestazioni di rete tra EC2 le istanze con Express ENA.

  • Codice 3: ENA se la LLQ dimensione è normale e il traffico di pacchetti Tx supera la dimensione massima supportata dall'header

    Per impostazione predefinita, ENA LLQ supporta le dimensioni dell'intestazione dei pacchetti Tx fino a 96 byte. Se la dimensione dell'intestazione del pacchetto è superiore a 96 byte, il pacchetto viene eliminato. Per mitigare questo problema, si consiglia di abilitare wide-LLQ, che aumenta la dimensione dell'intestazione del pacchetto Tx supportata fino a un massimo di 224 byte.

    Tuttavia, quando si abilita wide-LLQ, la dimensione massima dell'anello Tx viene ridotta da 1000 a 512 voci. Wide- LLQ è abilitato di default per tutti i tipi di istanze Nitro v4 e versioni successive.

    • I tipi di istanze Nitro v4 hanno una dimensione massima predefinita dell'anello LLQ wide-Tx di 512 voci, che non può essere modificata.

    • I tipi di istanze Nitro v5 hanno una dimensione dell'anello LLQ wide-Tx predefinita di 512 voci, che è possibile aumentare fino a 1000 voci.

    È possibile eseguire i seguenti ethtool comandi per regolare le dimensioni. LLQ Per ulteriori informazioni su come controllare, interrogare e abilitare wide-LLQ, consulta l'argomento Large Low-Latency Queue (LargeLLQ) del driver del kernel Linux per la documentazione ENA nel repository Amazon Drivers. GitHub

    Trova la profondità massima per le tue code Tx:

    ethtool -g interface

    Imposta le code Tx alla profondità massima:

    ethtool -G interface tx depth