Gibt es eine Methode in Linux, um zu überprüfen, wie viele vergängliche Ports noch verfügbar sind? Es wird gelegentlich der Fehler "Adresse wird bereits verwendet" angezeigt, da die vergänglichen Ports aufgebraucht sind. Ein Neustart des Computers wird das Problem beheben, es ist jedoch besser, den Fehler vorher zu beheben.
17
Antworten:
Der ephermale Portbereich wird in angegeben
/proc/sys/net/ipv4/ip_local_port_range
. Sie können es wahrscheinlich von 16k auf 64k erweitern.Mit können Sie die Anzahl der offenen Verbindungen anzeigen
netstat -an
. Sockets können im TIME_WAIT-Status hängen bleiben, wenn Sie viele Verbindungen öffnen und schließen. An einigen Stellen ist dies unvermeidlich, aber Sie müssen möglicherweise überlegen, ob Sie in diesem Fall einen Pool von Verbindungen benötigen.Wenn TIME_WAIT das Problem ist, können Sie
net.ipv4.tcp_tw_reuse
/ einstellennet.ipv4.tcp_tw_recycle
, um den Verbindungsumsatz zu beschleunigen.quelle
net.ipv4.tcp_tw_recycle
in Linux 4.12/proc/sys/net/ipv4/ip_local_port_range
muss es sich um eine Teilmenge von 49152-65535 handeln. Eine Reduzierung des unteren Bereichsendes auf weniger als 49152 ist daher mit einem gewissen Risiko verbunden.Beachten Sie, dass dieses Limit für jedes einzelne Tupel (Quell-IP, Peer-IP, Peer-Port) gilt. Daher müssen Sie die Ausgabe von
netstat
/ss
nach jedem dieser Tupel gruppieren und prüfen, wie nah jede Gruppe am Verbindungslimit ist.In diesem Beitrag wird detaillierter erläutert, wie Sie diese Gruppierung durchführen können. Um zu überprüfen, wie nahe jede Gruppe in Ruby am Limit ist, können Sie die
ss
Ausgabe wie folgt verarbeiten :quelle