Sobrecarga de IPC em uma arquitetura (nginx - uwsgi - wsgi application)?

2

Recentemente, estou configurando algum site em Python e parece que a arquitetura nginx -> uwsgi -> wsgi application é uma escolha óbvia no mundo do Python atualmente. (Na verdade, estou migrando um site do MoinMoin com o suporte do Apache + mod_wsgi para uma VM mais recente executando o nginx, então aproveitei para examinar as possibilidades de implantação do nginx.)

Eu li muito sobre por que precisa ser essas camadas de indireção, e estou plenamente ciente de que as técnicas individuais envolvidas - nginx, uwsgi e wsgi - são todas modernas, repletas de muito alto desempenho, e todos amadurecem a partir de hoje. Mas como em tal arquitetura existem 2 camadas de IPC envolvidas ( nginx -> uwsgi e uwsgi -> wsgi application ) eu sempre me perguntei sobre

  • como os IPCs afetam o desempenho geral?
  • o impacto é grande o suficiente para ter implicações práticas?

Eu pesquisei e não encontrei resposta direta. Então, a sobrecarga do IPC é pequena o suficiente ou não encontrei as palavras-chave certas?

(BTW eu li que a comunidade Erlang produziu vários servidores HTTP que levam a solicitação HTTP do usuário diretamente para o código do aplicativo e também têm muito alto desempenho . Eu pesquisei mas não consegui encontrar um benchmark comparando essas duas abordagens)

    
por xiaq 01.08.2012 / 03:23

1 resposta

0

Não há ipc na parte uwsgi- > wsgi. A única conexão / ipc é de nginx para uWSGI, e praticamente não tem impacto (lembre-se, até mesmo o apache + mod + wsgi no modo daemon usa ipc)

Em relação à parte Erlang em sua pergunta, há um analisador http de alta performance para python que você também pode incluir em seu código (mesmo o uWSGI pode ser usado), mas a experiência mostrou que essa não é uma boa abordagem para segurança, versatilidade e escalabilidade (mas obviamente você está livre para fazer isso). Ter um proxy de frontend parece ser a escolha mais razoável (independentemente do servidor de aplicativos ou do idioma)

    
por 01.08.2012 / 07:27