Red Hat Training
A Red Hat training course is available for RHEL 8
21.3. Configurar el sondeo de ocupado
Si el análisis revela una alta latencia, su sistema puede beneficiarse de la recepción de paquetes basada en el sondeo en lugar de en la interrupción.
El sondeo ocupado ayuda a reducir la latencia en la ruta de recepción de la red al permitir que el código de la capa de socket sondee la cola de recepción de un dispositivo de red, y desactiva las interrupciones de la red. Esto elimina los retrasos causados por la interrupción y el cambio de contexto resultante. Sin embargo, también aumenta la utilización de la CPU. El sondeo ocupado también evita que la CPU entre en reposo, lo que puede suponer un consumo adicional de energía. El comportamiento de sondeo ocupado es soportado por todos los controladores de dispositivos.
21.3.1. Habilitación del sondeo ocupado
Por defecto, el sondeo de ocupado está desactivado. Este procedimiento describe cómo habilitar el sondeo de ocupado.
Procedimiento
Asegúrese de que la opción de compilación CONFIG_NET_RX_BUSY_POLL está activada:
# cat /boot/config-$(uname -r) | grep CONFIG_NET_RX_BUSY_POLL CONFIG_NET_RX_BUSY_POLL=y
Habilitar el sondeo de ocupado
Para habilitar el sondeo de ocupado en sockets específicos, establezca el valor del kernel
sysctl.net.core.busy_poll
a un valor distinto de0
:# echo "net.core.busy_poll=50" > /etc/sysctl.d/95-enable-busy-polling-for-sockets.conf # sysctl -p /etc/sysctl.d/95-enable-busy-polling-for-sockets.conf
Este parámetro controla el número de microsegundos de espera de los paquetes en el sondeo del socket y selecciona
syscalls
. Red Hat recomienda un valor de50
.-
Añade la opción de enchufe
SO_BUSY_POLL
al enchufe. Para habilitar el sondeo de ocupado de forma global, establezca en
sysctl.net.core.busy_read
un valor distinto de0
:# echo "net.core.busy_read=50" > /etc/sysctl.d/95-enable-busy-polling-globally.conf # sysctl -p /etc/sysctl.d/95-enable-busy-polling-globally.conf
El parámetro
net.core.busy_read
controla el número de microsegundos de espera de los paquetes en la cola del dispositivo para las lecturas de socket. También establece el valor por defecto deSO_BUSY_POLL option
. Red Hat recomienda un valor de50
para un pequeño número de sockets y un valor de100
para un gran número de sockets. Para números extremadamente grandes de sockets, por ejemplo más de varios cientos, utilice la llamada al sistemaepoll
en su lugar.
Pasos de verificación
Verificar si el sondeo de ocupación está activado
# ethtool -k device | grep "busy-poll" busy-poll: on [fixed] # cat /proc/sys/net/core/busy_read 50
Recursos adicionales
-
Para más información, consulte las páginas de manual
ethtool
,socket
,sysctl
, ysysctl.conf
. - Configuración de las funciones de descarga de ethtool mediante la secciónNetworkManager.