NAPI
En el controlador e1000ixgbe se admite NAPI (modo de sondeo Rx).
Para obtener más información sobre NAPI, consulte
development/NAPI/usenix-paper.tgz.
Large Receive Offload (LRO)
Large Receive Offload (LRO) es una técnica para aumentar el flujo entrante de las conexiones de red de alto
ancho de banda al reducir la carga de la CPU. Se agregan varios paquetes entrantes de un mismo flujo en un
búfer de mayor tamaño antes de que pasen a la pila de red, lo cual reduce la cantidad de paquetes que debe
procesarse. LRO combina varias tramas Ethernet en una misma recepción en la pila y de esta manera se
puede reducir el uso de CPU para las recepciones.
IXGBE_NO_LRO es una etiqueta que se utiliza en el momento de la compilación. Puede habilitarse en el
momento de la compilación para eliminar la compatibilidad para LRO del controlador. La etiqueta se utiliza
agregando CFLAGS_EXTRA="-DIXGBE_NO_LRO" en el archivo make cuando se lo compila.
make CFLAGS_EXTRA="-DIXGBE_NO_LRO" install
Para comprobar si el controlador utiliza LRO, observe estos contadores en ethtool:
lro_flushed: el número total de recepciones con LRO.
lro_coal: el número total de paquetes Ethernet combinados.
HW RSC
Los adaptadores basados en 82599 admiten la unión de recepción basada en hardware (RSC), que puede
fusionar varias tramas del mismo flujo TCP/IP IPv4 en una sola estructura que puede abarcar uno o más
descriptores. Funciona de forma similar a la técnica de descarga de recepción grande de software. De forma
predeterminada, HW RSC está habilitado y SW LRO no se puede utilizar para adaptadores basados en 82599 a
menos que se inhabilite HW RSC.
IXGBE_NO_HW_RSC es una etiqueta de compilación que puede habilitarse durante la compilación para
eliminar la compatibilidad con HW RSC desde el controlador. La etiqueta se utiliza agregando
CFLAGS_EXTRA="-DIXGBE_NO_HW_RSC" en el archivo make cuando se compila.
make CFLAGS_EXTRA="-DIXGBE_NO_HW_RSC" install
Para comprobar si el controlador utiliza HW RSC, examine el contador en ethtool:
hw_rsc_count - cuenta el número total de paquetes Ethernet que se estaban
combinando.
rx_dropped_backlog
Cuando se encuentra en un modo que no es Napi (o interrupción), este contador indica que la pila está
perdiendo paquetes. Hay un parámetro ajustable en la pila que permite ajustar el nivel de rezago.
Recomendamos aumentar netdev_max_backlog si el contador aumenta.
# sysctl -a |grep netdev_max_backlog
net.core.netdev_max_backlog = 1000
# sysctl -e net.core.netdev_max_backlog=10000
net.core.netdev_max_backlog = 10000
Control de flujo
El control de flujo viene inhabilitado de forma predeterminada. Para habilitarlo, utilice ethtool:
ftp://robur.slu.se/pub/Linux/net-