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à.
Ottimizza le prestazioni di rete sulle istanze Windows EC2
Per ottenere le massime prestazioni di rete sulle istanze Windows con reti avanzate, potrebbe essere necessario modificare la configurazione del sistema operativo predefinita. Si consiglia di apportare le seguenti modifiche alla configurazione per le applicazioni che richiedono prestazioni di rete elevate. Altre ottimizzazioni (come ad esempio l’attivazione dell’offload del checksum e l’abilitazione di RSS) sono già configurate sulle AMI ufficiali di Windows.
Nota
TCP chimney offload dovrebbe essere disabilitato nella maggior parti dei casi d’uso ed è stato reso obsoleto con Windows Server 2016.
Oltre a queste ottimizzazioni del sistema operativo, devi anche considerare l’unità di trasmissione massima (MTU) del traffico di rete e regolare in base al carico di lavoro e all’architettura di rete. Per ulteriori informazioni, consulta Unità massima di trasmissione (MTU) di rete per istanza EC2.
AWS misura le latenze medie del round trip tra le istanze avviate in un gruppo di collocamento cluster da 50 us e le latenze della coda da 200 us con percentile del 99,9. Se le tue applicazioni richiedono costantemente latenze basse, consigliamo di utilizzare l’ultima versione dei driver ENA nelle istanze basate sul sistema Nitro con prestazioni fisse.
Configura l’affinità della CPU con Receive Side Scaling
Receive Side Scaling (RSS) viene utilizzato per distribuire il carico della CPU del traffico di rete su più processori. Come impostazione predefinita, le AMI Amazon Windows ufficiali sono configurate con RSS abilitato. Le interfacce di rete elastiche ENA forniscono fino a otto code RSS. Definendo l’affinità dei CPU per le code RSS, nonché per altri processi del sistema, è possibile distribuire il carico di lavoro della CPU su sistemi multi-core e consentire l’elaborazione di più traffico di rete. In tipi di istanze con più di 16 vCPU, è consigliabile usare il cmdlet PowerShell Set-NetAdapterRSS, che esclude manualmente il processore di avvio (processore logico 0 e 1 quando l’hyper-threading è abilitato) dalla configurazione RSS per tutte le interfacce di rete elastiche, per prevenire conflitti con vari componenti del sistema.
Windows è compatibile con hyperthreading e garantisce che le code RSS di una singola scheda di interfaccia di rete vengano sempre posizionate su diversi core fisici. Quindi, almeno che hypertgreading sia disabilitato, per prevenire completamente conflitti con altri NIC, distribuisci la configurazione RSS di ogni NIC in una gamma di 16 processori logici. Il cmdlet Set-NetAdapterRss permette di definire la gamma per NIC di processori logici validi definendo i valori di BaseProcessorGroup, BaseProcessorNumber, MaxProcessingGroup, MaxProcessorNumber e NumaNode (opzionale). Se non ci sono abbastanza core fisici per eliminare completamente conflitti inter-NIC, minimizza le gamme in sovrapposizione o riduci il numero di processori logici nelle gamme di interfaccia elastica di rete in base al carico di lavoro previsto dell’interfaccia (in altre parole, un’interfaccia di rete amministrativa di basso volume potrebbe non aver bisogno di così tante code RSS assegnate). Inoltre, come indicato precedentemente, i vari componenti devono essere eseguiti su CPU 0 e quindi è consigliabile escluderla da tutte le configurazioni RSS quando è disponibile un numero sufficiente di vCPU.
Ad esempio, quando sono presenti tre interfacce elastiche di rete su un’istanza a 72 vCPU con due nodi NUMA con l’hyper-threading abilitato, i comandi seguenti distribuiscono il carico di rete tra le due CPU senza sovrapposizione e impediscono completamente l’utilizzo del core 0.
Set-NetAdapterRss -Name NIC1 -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 Set-NetAdapterRss -Name NIC2 -BaseProcessorGroup 1 -BaseProcessorNumber 0 -MaxProcessorNumber 14 Set-NetAdapterRss -Name NIC3 -BaseProcessorGroup 1 -BaseProcessorNumber 16 -MaxProcessorNumber 30
Nota che queste impostazioni sono persistenti per ogni adattatore di rete. Se un’istanza viene ridimensionata a uno con un numero diverso di vCPU, devi rivalutare la configurazione RSS per ogni interfaccia elastica di rete abilitata. La documentazione Microsoft completa per il cmdlet si trova qui: Set-NetAdapterRss
Nota speciale per i carichi di lavoro SQL: consigliamo inoltre di controllare le impostazioni di affinità del thread IO assieme alla configurazione RSS dell’interfaccia elastica di rete per ridurre al minimo i conflitti di I/O e di rete per le stesse CPU. Consulta Server configuration: affinity mask