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à.
Migliora la latenza di rete per le istanze basate su EC2 Linux
La latenza di rete è il tempo che un pacchetto di dati impiega per viaggiare dall'origine alla destinazione. Le applicazioni che inviano dati attraverso la rete dipendono da risposte tempestive per fornire un'esperienza utente positiva. Una latenza di rete elevata può portare a vari problemi, come i seguenti:
-
Tempi di caricamento lenti per le pagine Web
-
Ritardi nello streaming video
-
Difficoltà di accesso alle risorse online
Questa sezione descrive i passaggi che puoi intraprendere per migliorare la latenza di rete EC2 sulle istanze Amazon eseguite su Linux. Per ottenere una latenza ottimale, segui questi passaggi per configurare le impostazioni dell'istanza, del kernel e del driver. ENA Per ulteriori indicazioni sulla configurazione, consulta la Guida alle migliori pratiche e all'ottimizzazione delle prestazioni dei driver ENA Linux su
Nota
I passaggi e le impostazioni possono variare leggermente a seconda dell'hardware di rete specifico, del dispositivo da AMI cui è stata avviata l'istanza e del caso d'uso dell'applicazione. Prima di apportare modifiche, verifica e monitora accuratamente le prestazioni della rete per assicurarti di ottenere i risultati desiderati.
Riduci il numero di hop di rete per i pacchetti di dati
Ogni hop eseguito da un pacchetto di dati mentre si sposta da un router all'altro aumenta la latenza di rete. In genere, il traffico deve compiere più hop per raggiungere la destinazione. Esistono due modi per ridurre gli hop di rete per le EC2 istanze Amazon, come segue:
-
Gruppo di posizionamento dei cluster: quando si specifica un gruppo di collocazione del cluster, Amazon EC2 lancia istanze che si trovano in prossimità l'una dell'altra, fisicamente all'interno della stessa zona di disponibilità (AZ) con un imballaggio più rigoroso. La vicinanza fisica delle istanze del gruppo consente loro di sfruttare la connettività ad alta velocità, con conseguente bassa latenza ed elevata velocità di trasmissione effettiva a flusso singolo.
-
Host dedicato: un host dedicato è un server fisico dedicato al tuo utilizzo. Con un host dedicato, puoi avviare le tue istanze per eseguirle sullo stesso server fisico. La comunicazione tra istanze eseguite sullo stesso host dedicato può avvenire senza hop di rete aggiuntivi.
In che modo la configurazione del kernel Linux influisce sulla latenza
La configurazione del kernel Linux può aumentare o diminuire la latenza di rete. Per raggiungere gli obiettivi di ottimizzazione della latenza, è importante ottimizzare la configurazione del kernel Linux in base ai requisiti specifici del tuo carico di lavoro.
Molte opzioni di configurazione per il kernel Linux potrebbero contribuire a ridurre la latenza di rete. Le opzioni che hanno un impatto maggiore sono le seguenti.
-
Abilita la modalità polling occupato: la modalità polling occupato riduce la latenza sul percorso di ricezione della rete. Quando si abilita la modalità polling occupato, il codice del socket layer può interrogare direttamente la coda di ricezione di un dispositivo di rete. L'aspetto negativo del polling occupato è un maggiore CPU utilizzo nell'host derivante dal polling di nuovi dati in un ciclo ristretto. Esistono due impostazioni globali che controllano il numero di microsecondi di attesa per i pacchetti in tutte le interfacce.
busy_read
-
Un timeout di polling attivo a bassa latenza per le letture del socket. Controlla il numero di microsecondi di attesa concessi al socket layer per leggere i pacchetti nella coda del dispositivo. Per abilitare la funzionalità a livello globale con il comando sysctl, l'organizzazione del kernel Linux consiglia un valore di 50 microsecondi. Per ulteriori informazioni, consulta busy_read
nella Guida per l'utente e l'amministratore del kernel Linux. $
C:\>
sudo sysctl -w net.core.busy_read=
50
busy_poll
-
Un timeout di polling attivo a bassa latenza per il polling e la selezione. Questo timeout controlla il numero di microsecondi di attesa per gli eventi. Il valore consigliato è tra 50-100 microsecondi, in base al numero di socket di cui esegui il polling. Più socket aggiungi, più alto dovrebbe essere il numero.
$
C:\>
sudo sysctl -w net.core.busy_poll=
50
-
Configura gli stati di CPU alimentazione (stati C): gli stati C controllano i livelli di sonno a cui un core può accedere quando è inattivo. Potresti voler controllare gli stati C-state per ottimizzare la latenza rispetto alle prestazioni del sistema. Negli stati C più profondi, CPU è essenzialmente «addormentato» e non può rispondere alle richieste finché non si risveglia e torna a uno stato attivo. Inserire i core nello stato di sospensione richiedete del tempo. Sebbene un core sospeso consenta maggiore capacità aggiuntiva per un altro core per raggiungere una frequenza più elevata, è necessario del tempo affinché il core sospeso torni attivo e in funzione.
Ad esempio, se un core assegnato per gestire le interruzioni di un pacchetto di rete è addormentato, potrebbe verificarsi un ritardo nel lavoro su tale interruzione. Puoi configurare il sistema in modo che non utilizzi stati C più profondi. Tuttavia, questa configurazione non solo riduce la latenza della reazione del processore, ma anche la capacità disponibile negli altri core per il Turbo Boost.
Per ridurre la latenza di reazione del processore, è possibile limitare gli stati C-state più profondi. Per ulteriori informazioni, consulta Prestazioni elevate e bassa latenza limitando gli stati C più profondi nella Guida per l'utente di Amazon Linux 2.
ENAconfigurazione dei driver di rete
Il driver ENA di rete consente la comunicazione tra un'istanza e una rete. Il driver elabora i pacchetti di rete e li trasmette allo stack di rete o alla scheda Nitro. Quando arriva un pacchetto di rete, la scheda Nitro genera un'interruzione per notificare CPU al software un evento.
- Interruzione
-
Un'interruzione è un segnale che un dispositivo o un'applicazione invia al processore. L'interruzione indica al processore che si è verificato un evento o è stata soddisfatta una condizione che richiede un'attenzione immediata. Le interruzioni possono gestire attività urgenti come la ricezione di dati da un'interfaccia di rete, la gestione di eventi hardware o di richieste di assistenza da altri dispositivi.
- Moderazione delle interruzioni
-
La moderazione delle interruzioni è una tecnica che riduce il numero di interruzioni generate da un dispositivo aggregandole o ritardandole. Lo scopo della moderazione delle interruzioni è migliorare le prestazioni del sistema riducendo il sovraccarico associato alla gestione di un numero elevato di interruzioni. Troppe interruzioni aumentano CPU l'utilizzo, influendo negativamente sulla velocità effettiva, mentre un numero troppo basso di interruzioni aumenta la latenza.
- Moderazione dinamica delle interruzioni
-
La moderazione dinamica delle interruzioni è una forma avanzata di moderazione delle interruzioni che regola dinamicamente la frequenza di interruzione in base al carico del sistema e ai modelli di traffico correnti. Ha l'obiettivo di trovare un equilibrio tra la riduzione del sovraccarico delle interruzioni e dei pacchetti al secondo e la larghezza di banda.
Nota
La moderazione dinamica delle interruzioni è abilitata per impostazione predefinita in alcuni casi AMIs (ma può essere abilitata o disabilitata in tutti). AMIs
Per ridurre al minimo la latenza di rete, potrebbe essere necessario disabilitare la moderazione delle interruzioni. Tuttavia, ciò può anche aumentare il sovraccarico dato dall'elaborazione delle interruzioni. È importante trovare il giusto equilibrio tra riduzione della latenza e riduzione al minimo del sovraccarico. I comandi ethtool
possono aiutarti a configurare la moderazione delle interruzioni. Per impostazione predefinita, rx-usecs
è impostato su 20
e tx-usecs
è impostato su 64
.
Per ottenere la configurazione di modifica dell'interruzione corrente, utilizza il comando seguente.
$
C:\>
ethtool -c
interface
| egrep "rx-usecs:|tx-usecs:|Adaptive RX"Adaptive RX: on TX: off rx-usecs: 20 tx-usecs: 64
Per disabilitare la moderazione dell'interruzione e la moderazione dinamica dell'interruzione, utilizza il comando seguente.
$
C:\>
sudo ethtool -C
interface
adaptive-rx off rx-usecs 0 tx-usecs 0