Es scheint, dass der Server auf ~ 32720 Sockets begrenzt ist ... Ich habe jede bekannte Variablenänderung versucht, um dieses Limit anzuheben. Der Server bleibt jedoch auf 32720 geöffneten Socket begrenzt, selbst wenn noch 4Go freier Speicher und 80% der inaktiven CPU vorhanden sind ...
Hier ist die Konfiguration
~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 63931
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 798621
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 2048
cpu time (seconds, -t) unlimited
max user processes (-u) 63931
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
net.netfilter.nf_conntrack_max = 999999
net.ipv4.netfilter.ip_conntrack_max = 999999
net.nf_conntrack_max = 999999
Irgendwelche Gedanken? (Diese Frage wurde beim Stapelüberlauf bisher ohne Glück gestellt)
linux
networking
socket
Die Gruppe
quelle
quelle
Antworten:
Ich habe festgestellt, was alles einschränkte:
Vielen Dank an alle, die geantwortet haben!
quelle
Sie suchen am falschen Ort nach diesem; Sie stoßen nicht auf ein Benutzerlimit, sondern auf ein Systemlimit, das im Allgemeinen die 15. Potenz von 2 auf einem 32-Bit-System ist. Ich vermute, dass dies Ihr System ist. Prüfen:
Aber das können Sie auch ändern. auf einem 32-Bit-Rechner wäre das 2 ** 22 als absolute Obergrenze, also:
Es würde mich interessieren, wie es dir geht.
quelle
Wenn Sie tatsächlich versuchen, die maximale Anzahl von Sockets zu ermitteln, mit denen Sie Verbindungen öffnen können, können Sie sich Cat / proc / sys / net / ipv4 / ip_local_port_range ansehen. Dies ist der Bereich von Ports, den der Kernel für ausgehende Sockets verwendet. Je nach Distribution gibt es unterschiedliche Standardeinstellungen. Das Einstellen auf "1024 65535" ist ungefähr so weit offen, wie Sie es bekommen können. sehen, ob das hilft.
quelle
Es tut mir leid, wenn in den Threads etwas Ähnliches gesagt wird, aber ich habe jetzt keine Zeit, sie zu lesen: <
Auf den ersten Blick sehe ich, dass die Anzahl der Sockets, die Sie erwähnen, ungefähr die Hälfte der maximalen Benutzerprozesse beträgt. Wie ich mir vorstellen kann, haben Sie für jeden Socket einen eigenen Prozess (wahrscheinlich betreiben Sie einen Server oder ähnliches).
Sie können die Anzahl der Prozesse überprüfen, wenn Sie das nächste Mal das Socket-Limit erreichen.
Nur eine Idee, ich weiß nicht, ob es hilft.
quelle