Кажется, что сервер ограничен в ~ 32720 сокетов ... Я пробовал каждое известное изменение переменной, чтобы поднять этот предел. Но сервер остается ограниченным на 32720 открытых сокетов, даже если все еще есть 4Go свободной памяти и 80% простаивающего процессора ...
Вот конфигурация
~# 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
Есть предположения ? (Этот вопрос был задан по поводу переполнения стека, но пока не повезло)
linux
networking
socket
TheSquad
источник
источник
Ответы:
Я нашел то, что ограничивало все:
Спасибо всем, кто ответил!
источник
Вы ищете не в том месте для этого; вы не сталкиваетесь с пользовательским пределом, вы работаете с системным лимитом, который обычно является 15-й степенью 2 в 32-битной системе, как я и предполагаю в вашей системе. Проверьте:
Но вы тоже можете это изменить; на 32-битной машине, которая будет 2 ** 22 в качестве абсолютного верхнего предела, так:
Мне было бы интересно узнать, как вы идете.
источник
Если вы на самом деле пытаетесь определить максимальное количество сокетов, с которыми вы можете открывать соединения, вы можете попробовать посмотреть на cat / proc / sys / net / ipv4 / ip_local_port_range; это диапазон портов, которые ядро будет использовать для исходящих сокетов, и оно имеет различные значения по умолчанию в зависимости от вашего дистрибутива. Установка его на что-то вроде «1024 65535» примерно настолько открыта, насколько это возможно; посмотрим, поможет ли это.
источник
Прошу прощения, если что-то подобное говорится в темах, но у меня нет времени читать их сейчас: <
С первого взгляда я вижу, что количество сокетов, о которых вы упоминаете, составляет примерно половину от максимального количества пользовательских процессов. Как я могу догадаться, у вас есть отдельный процесс для каждого сокета (возможно, вы запускаете сервер или что-то в этом роде)
Что вы можете сделать, это проверить количество процессов в следующий раз, когда вы достигнете предела сокета.
Просто идея, я не знаю, поможет ли это.
источник