TCP/IP-Tuning für Linux

Einstellen der Fenstergrößen

Unter Linux sind die folgenden sysctl-Variablen für die TCP-Puffer zuständig:

net.core.rmem_max und net.core.wmem_max geben die maximale Größe für Empfangs- und Sendepuffer von Netzwerkpaketen an.

Die beiden Variablen net.ipv4.tcp_rmem und net.ipv4.tcp_wmem enthalten jeweils drei Werte. Minimum, Default und Maximum. Der erste gibt den Mindestspeicher an, den ein TCP-Socket bekommt, auch wenn das System nur wenig Speicher hat. Ist ausreichend Speicher vorhanden, weist der Kernel einem TCP-Socket den über Default spezifizierten Wert zu. Bei Bedarf kann der Puffer bis hin zum Maximum erhöht werden. Dies erfolgt dynamisch durch den Kernel. Das hier angegebene Maximum darf allerdings nicht höher sein als das unter net.core.rmem_max beziehungsweise unter net.core.wmem_max eingestellte.

Tragen Sie die Variablen und ihre Werte in die Datei /etc/sysctl.conf ein und laden die neuen Parameter durch Eingabe von

sysctl -p

Je nach verfügbarem Hauptspeicher und Anbindung des Rechners im LAN oder ans Internet bieten sich andere Werte an. Riesige Puffer sind nur für Gigabit-Netzwerke notwendig. Ein Drehen an dem Default-Wert kann sich allerdings schon positiv auswirken. Beim Minimum sollten Sie keine Experimente machen und den Standardwert von 4096 beibehalten.

# increase Linux TCP buffer limits
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152

# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
net.ipv4.tcp_rmem = 4096 87380 2097152
net.ipv4.tcp_wmem = 4096 65536 2097152