Kernel-Parameter mit sysctl tunen
Der Linux-Kernel hat hunderte einstellbarer Parameter. Für Server gibt es ein paar die sich fast immer lohnen anzupassen.
Aktuellen Wert lesen
sysctl net.ipv4.tcp_fin_timeout sysctl -a | grep swappiness
Temporär setzen
sudo sysctl net.ipv4.tcp_fin_timeout=15
Gilt bis zum nächsten Neustart.
Dauerhaft in /etc/sysctl.conf
sudo nano /etc/sysctl.conf
# Swap weniger aggressiv nutzen vm.swappiness = 10 # Mehr gleichzeitige Verbindungen erlauben net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 # TIME_WAIT Verbindungen schneller freigeben net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_tw_reuse = 1 # IP-Forwarding für Router/VPN (nur wenn nötig) net.ipv4.ip_forward = 1 # SYN-Flood-Schutz net.ipv4.tcp_syncookies = 1 # Maximale Anzahl offener Dateien (systemweit) fs.file-max = 2097152 # inotify Watches für Tools wie Netdata oder Watchman fs.inotify.max_user_watches = 524288
Sofort anwenden ohne Neustart.
sudo sysctl -p
Für Datenbank-Server
# Shared Memory für PostgreSQL kernel.shmmax = 17179869184 kernel.shmall = 4194304 # Dirty Pages seltener auf Disk schreiben vm.dirty_ratio = 15 vm.dirty_background_ratio = 5
Für stark genutzte Webserver
net.ipv4.ip_local_port_range = 1024 65535 net.core.netdev_max_backlog = 65535
Die Standardwerte sind für Desktops ausgelegt. Auf einem dedizierten Server sind diese Anpassungen fast immer sinnvoll.