Diferença entre txqueuelen e ethtool tx

10

Qual é a diferença entre a configuração txqueuelen que pode ser aplicada com:

ifconfig eth4 txqueuelen 5000
ip link set eth4 txqueuelen 5000

E a configuração do tamanho do toque tx que pode ser aplicada com:

ethtool -G eth4 tx 4096

Como isso se relaciona com as configurações globais de /proc/sys/net/core/wmem* ?

Estou no RHEL6.

    
por Christopher Neylan 05.02.2014 / 15:29

2 respostas

5

As configurações net.core.wmem_default e wmem_max controlam os tamanhos inicial e máximo dos buffers do soquete TX em bytes. Embora a fila em si seja apenas uma lista vinculada de skb ponteiros, o kernel também registra o tamanho total de bytes consumido pelo skb à medida que são adicionados e removidos do buffer de soquete. O wmem_default sysctl define o limite inicial padrão para novos soquetes ( net/core/sock.c:sock_init_data() ). As aplicações podem aumentar o tamanho dos buffers de seus soquetes e wmem_max é o teto para essa funcionalidade ( net/core/sock.c:sock_setsockopt() ).

Quando um pacote é removido de um buffer de soquete e encontra seu caminho através da pilha de redes do kernel, ele é colocado em uma fila de transmissão para que uma interface aguarde ser carregada na própria NIC. O txqueuelen definido pelos comandos ifconfig ou ip é o número de quadros permitidos por fila de transmissão do kernel para a disciplina de enfileiramento ( net/sched/sch_generic.c:pfifo_fast_enqueue() ).

Finalmente, ethtool -G usa ioctl para definir o número de entradas de toques para o buffer de anel na própria NIC.

    
por 19.12.2014 / 19:11
0

Eu sei que devo dar uma longa explicação, mas um Seimon já tem . Em suma, txqueuelen é o tamanho do buffer. Todos os pacotes de rede se encaixam nesse buffer, enquanto tx é o tamanho do pacote IP do pacote que entra no buffer. Isso é se eu entendi esse post corretamente.

    
por 23.09.2014 / 03:02