8.5. Consideraciones de multidifusión
Cuando se escuchan múltiples aplicaciones para un grupo de multidifusión, el código de kernel que administra marcos de multidifusión es requerido por diseño para duplicar los datos de red de cada socket individual. Esta duplicación consume tiempo y se presenta en el contexto de
softirq
.
La adición de múltiples oyentes en un grupo de multidifusión individual tiene un impacto directo en el tiempo ejecución del contexto
softirq
. La adición de un oyente a un grupo de multidifusión, implica que el kernel debe crear una copia adicional de cada marco recibido para dicho grupo.
El efecto es mínimo en volumen de tráfico bajo y pequeña cantidad de oyentes. Sin embargo, cuando los sockets múltiples escuchan a un grupo multidifusión en un tráfico alto, el tiempo de ejecución aumentado del contexto
softirq
puede conducir a pérdidas de marcos tanto en tarjetas de red como en colas de sockets. El aumento de tiempos de ejecución de softirq
se traduce en una oportunidad reducida para que las aplicaciones se ejecuten en sistemas de carga pesada, entonces la tasa en la que los marcos de multidifusión se pierden aumenta a medida que aumenta el número de aplicaciones que escuchan al grupo de multidifusión de alto volumen.
Puede resolver esta pérdida de marco al optimizar sus colas de conectores y búferes de hardware de NIC, como se describe en la Sección 8.4.2, “Cola de socket” o en la Sección 8.4.1, “Búfer de hardware de NIC”. Igualmente, puede optimizar el uso de un socket de aplicación; para hacerlo, configure la aplicación para controlar un socket individual y diseminar rápidamente los datos de red recibidos a otros procesos de espacio de usuario.