Anzahl der möglichen TCP-Verbindungen unter Debian erhöhen
Nachdem im Fehlerlog unseres Apache Servers die Meldung PHP Fatal error: Uncaught exception 'RedisException' with message 'Connection closed' in [no active file]:0
auftauchte, musste die Anzahl der möglichen TCP-Verbindungen zur Ansteuerung des Redis-Servers erhöht werden.
Dazu waren verschiedene Anpassungen auf dem Webserver nötig.
fin_timeout definiert die Zeit, die eine Verbindung minimal im TIME_WAIT-Status bleibt. Dieser Wert ist in der Regel per default auf 60 gesetzt. Den aktuellen Wert kann man mittels sysctl net.ipv4.tcp_fin_timeout
(als root) im Terminal anzeigen lassen.
Diesen Wert habe ich mit sysctl net.ipv4.tcp_fin_timeout=5
auf 5 Sekunden gesetzt, was sich bislang bewährt hat.
Danach erlaube ich dem System noch das schnelle wechseln und wiederverwenden von Sockets durch das Ändern von net.ipv4.tcp_tw_recycle und net.ipv4.tcp_tw_reuse:
sysctl net.ipv4.tcp_tw_reuse=1
sysctl net.ipv4.tcp_tw_recycle=1
Nachdem sich die Anpassungen als erfolgreich erwiesen haben, wurden die Werte in der Konfigurationsdatei hinterlegt, damit sie persistent sind.
Dazu werden in /etc/sysctl.conf
einfach folgende Zeilen angefügt:
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
Mit sysctl -p wird die Datei neu geladen und die aktualisierten Werte werden nochmal gelistet.
Danke! Das hat auch bei meinem Server geholfen.