fork: não é possível alocar memória

2

Estou tendo algum problema com alguns servidores com muita quantidade de conexões.

Os servidores apenas travam por novas conexões de rede (embora a funcionalidade de balanceamento de carga no haproxy pareça funcionar corretamente). Não consigo me conectar ao ssh e o servidor não pode se conectar a outros soquetes.

Eu permaneci conectado com um console na tela para o servidor. Então ocorreu o erro que não consegui executar nenhum comando via tela.

# ls
-bash: fork: Cannot allocate memory 

Eu não consegui executar "free -m" para mostrar o número de memória, mas obtive monitoramento implementado que indicava que o último valor enviado era (RAM livre, Buffers livre, Swap livre) (3597MB, 5793, 5783).

O servidor tem muitas conexões TIME_WAIT no netstat, apesar de eu alterar tcp_fin_timeout para 15 (9155 TIME_WAIT, 55 ESTABLISHED). Eu só consegui executar ulimits -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 88064
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 88064
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited 

PS. Não é um VPS. É a DELL.

    
por krogon 01.03.2011 / 02:55

1 resposta

3

Se você tem uma idéia de quais processos causam tudo isso (ou seja, o Apache), você pode tentar se recuperar dessa situação com o comando exec killall -9 httpd . Isso substitui o shell atual pelo programa killall, que, esperamos, elimina os processos problemáticos, permitindo que você analise o problema. Cuidado, porém, esta é uma tentativa one-shot, depois que o shell na sua sessão de tela será ido por isso, se isso falhar, você precisará de um hard reboot.

    
por 01.03.2011 / 05:00