Linux/OVM Netzwerk Tuning
Die eine für alles optimale Netzwerktuningeinstellung gibt es nicht. Es gibt verschiedene Ansätze, Empfehlungen und Tipps, wir haben hier einige Empfehlungen zusammen getragen, mit denen wir recht gute Ergebnisse erreichen konnten.
Einstellungen für physische Linux / Oracle VM Server
Die folgenden Einstellungen in /etc/sysctl.conf sind für physische Linux Server gedacht - und gelten somit auch für Oracle VM Server.
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 1048576 134217728
net.ipv4.tcp_wmem = 4096 1048576 134217728
net.ipv4.tcp_congestion_control=reno
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_sack=0 ## nur wenn das Netzwerk 100pct stabil ist
net.ipv4.tcp_fin_timeout=15
net.core.netdev_max_backlog = 300000
net.ipv4.tcp_moderate_rcvbuf = 1
Sofern auf dem Linux die Module für "Congestion Control" vorhanden sind - das lässt sich mittels folgender Befehle verifizieren - kann man auch auf die CUBIC Congestion Control umstellen:
modprobe tcp_htcp
modeprobe tcp_cubic
Dafür ist dann noch folgender Eintrag im /etc/sysctl.conf nötig:
net.ipv4.tcp_congestion_control=cubic ### statt reno
Leider nicht über die Systemeinstellungen geht die maximale Queue Länge für ausstehende Netzwerkpakete. Diese stellt man für jede Netzwerkkarte wie folgt ein.
ifconfig ethx txqueuelen 10000
Einstellungen für Xen virtualisierte Linux Gastsysteme
Werte für /etc/sysctl.conf:
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.rmem_default = 1048576
net.core.wmem_default = 1048576
net.ipv4.tcp_rmem = 4096 1048576 16777216
net.ipv4.tcp_wmem = 4096 1048576 16777216
net.ipv4.tcp_congestion_control = bic
Wie schon zuvor, muss man noch die maximale Queue Länge für ausstehende Netzwerkpakete erhöhen:
ifconfig ethx txqueuelen 5000
Quellen
Bei unseren Suchen nach den besten Einstellungen haben wir viele Quellen genutzt - hier eine Auswahl:
-
Oracle Doc ID 1636393.1 Poor NFS/Network IO Performance When Using Bonding in mode=4 or 802.3ad
-
Oracle Doc ID 1519875.1 Oracle VM 3: 10GbE Network Performance Tuning
-
Oracle Datenbank Installation Guide von Oracle 11gR2 und Oracle 12c
-
Oracle Validated / Recommended Linux Configuration RPMs
-
http://wiki.xen.org/wiki/Network_Throughput_and_Performance_Guide
-
Diverse Linux TCP/IP Tuning Tipps und Tricks