Para referência futura, resolvi o problema, com alguma ajuda da comunidade RabbitMq, que me apontou nessa direção, por meio de uma simples declaração.
This suggests Erlang VM cannot create a thread. Do you have any resource or security restrictions in place?
Isso foi diretamente em resposta a dois itens.
Failed to create aux thread
Não sei por que isso não ocorreu antes, porque eu vi isso no erlang dump
processes: 13064032
processes_used: 13064032
No entanto, não tenho certeza de como o número de processos erlang é convertido em processo do sistema, mas, independentemente disso, achei que fosse um bug ou uma incompatibilidade de programação. Simplesmente não fazia muito sentido porque a instalação correu bem no meu servidor de desenvolvimento virtual. Bem como o nosso velho servidor 5.1 CentOS. Além disso, como este era um novo, separe com > 3x a velocidade do nosso antigo, pensei que atingir os limites de recursos não era um problema. Eu só precisava de alguém para dizer isso para torná-lo click
em minha mente.
De qualquer forma, depois de algumas pesquisas eu executei este comando
#su rabbitmq
bash-4.1$ 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) 128218
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 131072
open files (-n) 4096
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 100
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
O importante aqui é esta parte:
max user processes (-u) 100
Verificando minha caixa de desenvolvimento (que tem uma instalação funcional do RabbitMq com o plugin de gerenciamento) Eu vi ainda isso.
Erlang processes 206
Então, não é preciso ser um gênio para descobrir que 206
é mais que 100
Então, depois de mais algumas pesquisas, descobri que o valor padrão para essa configuração é tipicamente 1024, e que posso alterá-lo em /etc/security/limits.conf
Nesse arquivo eu encontrei
* hard nproc 100
Por isso, acrescentei isso à quantidade de 1024
do usuário rabbitmq
rabbitmq hard nproc 1024
E disparou bem! Depois de iniciá-lo e verificar o status, vejo isso
{processes,[{limit,1048576},{used,147}]},
Eu acredito que o limite aqui é todo o sistema? Ainda não tenho certeza de como o processo erlang e esses outros números de processo se relacionam.
Portanto, para concluir, o processo 100 não é suficiente para que o erlang funcione. Esse é um servidor da Web dedicado SSAE 16 hospedado em nuvem, normalmente a empresa de hospedagem os configura para uso em resellers
, ou seja. você pode extrair partes do servidor para hospedar seus sites de clientes. Isso é mais provável porque eles definiram um limite padrão tão baixo. Usamos esse tipo de servidor porque fazemos muitas pesquisas de banco de dados e redigimos relatórios, e ele oferece uma boa quantidade de energia para o que pagamos. Portanto, embora o hardware atenda às nossas necessidades, a configuração também não se ajusta ao nosso caso de uso.
Espero que isso possa ajudar alguém no futuro.