Limite de conexão do soquete Unix

4

Isto pode aparecer como uma questão já discutida / respondida. Mas estou procurando especificamente informações que não encontrei em lugar algum respondidas com clareza.

Eu tenho uma configuração Nginx + php-fpm que usa soquetes unix para falar sobre Nginx para processos fastcgi php-fpm. Recentemente eu ouvi que conexões baseadas em soquete unix não são tão escalonáveis quanto conexões baseadas em tcp. Não sei qual é o fator limitante aqui, especialmente quando eu executo tudo do mesmo host.

Eu posso aumentar o descritor de arquivo máximo por sistema ou um usuário (nginx). Eu também posso aumentar esse limite por processos de trabalho do nginx. O descritor de arquivo max é o fator limitador?

Eu tenho muito poucos sites configurados nesta configuração e os soquetes máximos (um por site). Eu uso menos de 50. Existe um limite máximo de conexões simultâneas por soquete quando vários threads nginx falando com várias instâncias php-fpm no back-end sob carga alta? Ou o que realmente pode limitar um soquete de permitir essas conexões se a simultaneidade for muito alta?

Existem outros fatores que podem afetar o desempenho, como bloqueios, desempenho do disco io etc.?

    
por meharo 08.07.2013 / 21:51

1 resposta

1

I heard unix socket based connections are not as scalable as tcp-based connections

É o contrário. Os soquetes Unix são mais escaláveis que a conexão TCP. Porque quando você usa TCP você tem que usar toda a pilha de rede. Mesmo se você estiver na mesma máquina, cada pacote deve ser encapsulado e decapsulado. Com soquetes Unix, você está processando a comunicação.

No entanto, em muitos casos, não usar pacotes TCP é apenas uma micro-otimização, o verdadeiro gargalo está em outro lugar.

    
por 12.02.2015 / 10:07