Die Einstellungen net.core.wmem_default
und wmem_max
steuern die anfängliche und maximale Größe von TX-Socket-Puffern in Byte. Während die Warteschlange selbst nur eine verknüpfte Liste von skb
Zeigern ist, protokolliert der Kernel auch die gesamte Byte-Größe, die die skb
's verbrauchen , wenn sie dem Socket-Puffer hinzugefügt und daraus entfernt werden. Das wmem_default
Sysctl legt die anfängliche Standardobergrenze für neue Sockets fest ( net/core/sock.c:sock_init_data()
). Anwendungen können die Größe der Puffer ihrer Sockets erhöhen. Dies wmem_max
ist die Obergrenze für diese Funktionalität ( net/core/sock.c:sock_setsockopt()
).
Wenn ein Paket aus einem Socket-Puffer entfernt wurde und seinen Weg durch den Kernel-Netzwerkstapel findet, wird es in eine Übertragungswarteschlange gestellt, damit eine Schnittstelle darauf wartet, auf die Netzwerkkarte selbst geladen zu werden. Die txqueuelen
mit den Befehlen ifconfig
oder festgelegte ip
Anzahl von Frames, die pro Kernel-Übertragungswarteschlange für die Warteschlangendisziplin ( net/sched/sch_generic.c:pfifo_fast_enqueue()
) zulässig sind .
Schließlich ethtool -G
Verwendungen ioctl die Anzahl der Ringeinträge für den Ringpuffer an der NIC selbst einzustellen.
Christopher Neylan
quelle