Parece que o servidor está limitado a ~ 32720 soquetes ... Tentei todas as alterações de variáveis conhecidas para aumentar esse limite. Mas o servidor fica limitado no soquete 32720 aberto, mesmo se ainda houver 4Go de memória livre e 80% da CPU ociosa ...
Aqui está a configuração
~# 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
Alguma ideia ? (Esta pergunta foi feita no estouro de pilha sem sorte até agora)
linux
networking
socket
O Esquadrão
fonte
fonte
Respostas:
Eu descobri o que estava limitando tudo:
Obrigado a todos que responderam!
fonte
Você está procurando no lugar errado para este; você não está executando um limite de usuário, está executando um limite do sistema que geralmente é a 15ª potência de 2 em um sistema de 32 bits, que é o que eu acho que é o seu sistema. Verifica:
Mas você pode mudar isso também; em uma máquina de 32 bits com 2 ** 22 como limite superior absoluto, portanto:
Eu estaria interessado em saber como você vai.
fonte
Se você está realmente tentando ver o número máximo de soquetes com os quais pode abrir conexões, pode tentar olhar em cat / proc / sys / net / ipv4 / ip_local_port_range; esse é o intervalo de portas que o kernel usará para soquetes de saída e possui diferentes padrões com base na sua distribuição. Configurá-lo para algo como '1024 65535' é o mais aberto possível; veja se isso ajuda as coisas.
fonte
Sinto muito se algo semelhante está sendo dito nos tópicos, mas não tenho tempo para lê-los agora: <
Com uma primeira olhada, vejo que o número de soquetes que você mencionou é aproximadamente a metade do número máximo de processos do usuário. Como posso adivinhar o seu tem um processo separado para cada soquete (provavelmente você executa um servidor ou algo parecido)
O que você pode fazer é verificar o número de processos na próxima vez que atingir o limite do soquete.
Apenas uma ideia, não sei se ajuda.
fonte