Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

8.5. Considerazioni multicast

Quando applicazioni multiple sono in ascolto per un gruppo multicast, sarà necessario usare il codice del kernel che gestisce i frame multicast per duplicare i dati di rete per ogni socket. Questa operazione richiede tempo e si verifica in un contesto softirq.
L'aggiunta dei listener su un gruppo multicast ha un impatto diretto sul tempo di esecuzione del contesto softirq. L'aggiunta di un listener ad un gruppo implica la creazione da parte del kernel di una copia aggiuntiva per ogni frame ricevuto per quel gruppo.
Questo impatto è minimo in presenza di un traffico relativamente basso e con un numero di listener ristretto. Tuttavia con socket multipli in ascolto di un gruppo multicast con traffico elevato, un tempo più esteso di esecuzione del contesto softirq può risultare in una perdita di frame sia nella coda del socket che sulla scheda di rete. Tempi di esecuzione softirq maggiori riducono l'opportunità di esecuzione delle applicazioni in sistemi molto carichi, e la velocità con la quale saranno persi i frame multicast aumenterà a causa di un incremento del numero di applicazioni in ascolto ad un gruppo multicast con traffico elevato.
Per risolvere questo problema ottimizzare le code del socket ed i buffer hardware NIC come descritto in Sezione 8.4.2, «Coda del socket» o Sezione 8.4.1, «NIC Hardware Buffer». Alternativamente ottimizzare l'uso del socket di una applicazione; per fare questo configurare l'applicazione in modo da controllare un singolo socket e ridistribuire i dati di rete ricevuti ad altri processi spazio-utente.