La configuración net.core.wmem_default
y wmem_max
controla los tamaños inicial y máximo de los búferes de socket TX en bytes. Si bien la cola en sí misma es solo una lista vinculada de skb
punteros, el núcleo también realiza un seguimiento del tamaño total de bytes consumido por los skb
's cuando se agregan y eliminan del búfer de socket. El wmem_default
sysctl establece el techo inicial predeterminado para los nuevos sockets ( net/core/sock.c:sock_init_data()
). Se permite que las aplicaciones aumenten el tamaño de los buffers de sus sockets y wmem_max
es el límite para esa funcionalidad ( net/core/sock.c:sock_setsockopt()
).
Cuando un paquete se ha eliminado de un búfer de socket y se abre paso a través de la pila de redes del kernel, se coloca en una cola de transmisión para que una interfaz espere a que se cargue en la NIC. El txqueuelen
conjunto de comandos ifconfig
o ip
es el número de tramas permitidas por cola de transmisión del núcleo para la disciplina de colas ( net/sched/sch_generic.c:pfifo_fast_enqueue()
).
Finalmente, ethtool -G
usa ioctl para establecer el número de entradas de anillo para el búfer de anillo en la propia NIC.
Christopher Neylan
fuente