Les paramètres net.core.wmem_default
et wmem_max
contrôlent les tailles initiale et maximale des tampons de socket TX en octets. Alors que la file d'attente elle-même n'est qu'une liste de skb
pointeurs liés , le noyau garde également une trace de la taille totale des octets consommés par les skb
fichiers lorsqu'ils sont ajoutés et supprimés du tampon de socket. Le wmem_default
sysctl définit le plafond initial par défaut pour les nouvelles sockets ( net/core/sock.c:sock_init_data()
). Les applications sont autorisées à augmenter la taille des tampons de leurs sockets et wmem_max
constituent le plafond de cette fonctionnalité ( net/core/sock.c:sock_setsockopt()
).
Lorsqu'un paquet a été supprimé d'un tampon de socket et trouve son chemin à travers la pile des réseaux du noyau, il est placé dans une file d'attente de transmission pour qu'une interface attende d'être chargée sur la carte réseau elle-même. La valeur txqueuelen
définie par les commandes ifconfig
ou ip
est le nombre de trames autorisées par file d'attente de transmission du noyau pour la discipline de mise en file d'attente ( net/sched/sch_generic.c:pfifo_fast_enqueue()
).
Enfin, ethtool -G
utilise ioctl pour définir le nombre d'entrées en anneau pour le tampon en anneau sur la carte réseau elle-même.
Christopher Neylan
la source