“Não é possível bifurcar: tente novamente…” erro no RH5. Precisa de informações sobre nproc

4

Tivemos um servidor efetivamente descendo esta manhã. O acesso SSH foi interrompido e, pelo menos temporariamente, o acesso à rede também diminuiu. Conseguimos fazer o login usando o acesso out-of-band e recebemos uma tela cheia de mensagens "Init: cannot fork, retry ..".

Ao tentar efetuar login, quando digitamos um ID do usuário e uma senha incorreta, recebemos o erro "inválido de usuário / senha inválido". No entanto, se digitarmos um ID de usuário e senha corretos, nós simplesmente recebemos o MOTD e a tela de login novamente. Parece que o sistema não foi mais capaz de iniciar nenhum novo processo (o login deve ser iniciado com êxito, se eu não conseguir adivinhar o login?).

Encontrei uma descrição do problema na base de conhecimento da Red Hat ( link ), mas há muito pouca informação complementar informações sobre o erro, apenas uma solução sugerida.

O que exatamente o nproc faz? É um limite rígido no número de processos que o sistema pode ter em execução a qualquer momento? Quando o nproc é excedido, ele causa impactos como vimos? Existe alguma maneira de configurá-lo para ilimitado? Se não, como podemos saber qual é o alcance seguro ou inseguro?

Qualquer ajuda ou orientação seria muito apreciada, já que causou problemas de produção e agora está na placa de várias pessoas da camada 8: (

Editar: Também em / var / log / messages:

May 31 15:26:00 servername udevd[1637]: udev_event_run: fork of child failed: Resource temporarily unavailable
May 31 15:26:00 servername last message repeated 3 times
May 31 15:26:00 servername udevd-event[2461]: run_program: fork of '/lib/udev/udev_run_hotplugd' failed: Resource temporarily unavailable
May 31 15:26:00 servername udevd-event[2461]: run_program: fork of '/lib/udev/udev_run_devd' failed: Resource temporarily unavailable
May 31 15:26:00 servername udevd[1637]: udev_event_run: fork of child failed: Resource temporarily unavailable
    
por Matthew 31.05.2013 / 20:43

2 respostas

3

A mensagem de erro significa que o servidor ficou fora do limite do número de processos. Existem dois limites - hard e soft. Quando você fork (), você cria um novo processo do processo existente. Aqui, temos alguma condição que não está permitindo fork ().

Você tem um problema ao bifar processos filho do udev. Eu acho que isso está acontecendo no tempo de inicialização. Veja isto

/ lib / udev / udev_run_hotplugd

Portanto, há algum dispositivo hot-pluggable lá. Caso contrário, não vejo uma razão para essa biblioteca ser chamada.

Duas sugestões para agora -

1) Se você puder reproduzi-lo, use-o se possível. Obtenha o syscall onde está falhando. Muito mais fácil assim. Eu não lembro exatamente qual é o syscall.

2) Execute o udev no modo de depuração. Altere udev_log=info para depurar MAS teste primeiro. Ele produz uma quantidade enorme de logs e sem um bom tamanho de buffer de anel ou um enorme monitor de largura, perder as mensagens mostradas no terminal é bastante comum.

Mas eu já vi esse problema muito. Deixe-me dizer, por que não perguntar ao pessoal da Red Hat se você tem uma assinatura.

    
por 29.11.2013 / 01:55
0

Parece que (1) você ficou sem espaço de memória + troca ou (2) um processo errante inundou sua tabela de processos impedindo a criação de novos processos.

    
por 31.05.2013 / 20:48

Tags