Wygląda na to, że serwer ma ograniczoną liczbę ~ 32720 gniazd ... Próbowałem każdej znanej zmiany zmiennej, aby podnieść ten limit. Ale serwer pozostaje ograniczony przy 32720 otwartym gnieździe, nawet jeśli nadal jest 4Go wolnej pamięci i 80% bezczynności procesora ...
Oto konfiguracja
~# 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
Jakieś pomysły ? (To pytanie zadane przy przepełnieniu stosu, jak dotąd bez powodzenia)
linux
networking
socket
Ekipa
źródło
źródło
Odpowiedzi:
Odkryłem, co ogranicza wszystko:
Dziękujemy wszystkim, którzy odpowiedzieli!
źródło
Szukasz niewłaściwego miejsca dla tego; nie napotykasz limitu użytkowników, napotykasz na limit systemu, który jest generalnie 15. potęgą 2 w systemie 32-bitowym, i tak właśnie przypuszczam. Czek:
Ale ty też możesz to zmienić; na komputerze 32-bitowym, który byłby 2 ** 22 jako absolutny górny limit, więc:
Chciałbym wiedzieć, jak idziesz.
źródło
Jeśli faktycznie próbujesz sprawdzić maksymalną liczbę gniazd, z którymi możesz otwierać połączenia, możesz spróbować spojrzeć na cat / proc / sys / net / ipv4 / ip_local_port_range; jest to zakres portów, których jądro będzie używać dla gniazd wychodzących i ma różne wartości domyślne w zależności od dystrybucji. Ustawienie na coś takiego jak „1024 65535” jest tak szeroko otwarte, jak to tylko możliwe; zobacz, czy to pomaga.
źródło
Przykro mi, jeśli w wątkach zostało powiedziane coś podobnego, ale nie mam czasu, aby je teraz przeczytać: <
Po pierwszym spojrzeniu widzę, że liczba gniazd, o których wspominasz, stanowi około połowy maksymalnej liczby procesów użytkownika. Jak mogę się domyślić, masz oddzielny proces dla każdego gniazda (prawdopodobnie prowadzisz serwer lub coś takiego)
Co możesz zrobić, to sprawdzić liczbę procesów, gdy następnym razem osiągniesz limit gniazda.
Pomysł, nie wiem czy to pomaga.
źródło