Nginx Upload

1

Eu tenho lido este link: link (a blog cujas postagens são repetidamente linkadas do site oficial do Nginx) que diz:

Each time Apache accepts an upload one of these processes is going to be busy for the duration of the upload.

Agora vou admitir que sou um noob no Nginx mas também não sofre o problema de que um de seus próprios funcionários será usado durante o upload, OK, é justo que não seja uma instância do PHP com os problemas de RAM / CPU que vêm com ele, mas ainda é limitado (ou seja, x número de conexões), certo?

Não tenho certeza se a vantagem de usar o Nginx aqui está bem explicada.

A documentação do Nginx em si não é, atualmente, muito clara sobre como ela realmente processa uma requisição, então se eu tiver algo incrivelmente errado sobre como o Nginx funciona, então espero que alguém conserte isso em vez de downvoting.

    
por Sammaye 14.12.2013 / 23:12

1 resposta

1

Ok, por causa do link do @MichealHampton ( link ) eu vou basicamente resumir isso.

A primeira coisa a notar é que o Apache 2.4 também traz (como diz o link) algumas mudanças interessantes, a saber, o evento MPM: link , que é mais uma versão sem bloqueio de: link projetado para criar o menor atrito possível quando se trata de uso de IO, devolvendo o trabalho para outros threads deixando o thread principal livre para continuar seu trabalho.

Isso obviamente não supera o problema fundamental com o Apache, que é a memória e o uso da CPU (afinal, é um conjunto genérico de ferramentas), mas é um passo na direção certa e significa que o Apache não precisa estar bloqueando mais, mas pode ser mais assíncrono.

Isso instantaneamente significa que o Nginx pode lidar com muito mais do que o Apache mesmo com as alterações do Apache 2.4s, já que ele usa menos.

O ponto principal sobre o Nginx quando se trata de uploads é a capacidade dos seus funcionários de não estarem vinculados a uma única tarefa, apesar de serem single threaded. Uso de notificações de eventos com um loop restrito para processar IOs assíncronas, permitindo que um único trabalhador consiga levar vários (talvez 1.000s) de uploads por vez, mesmo em um único trabalhador.

Isto ainda está em contraste com o modelo não-evento do Apaches, e mesmo que o Apache esteja indo na mesma rota que o Nginx lentamente ainda não está lá, no entanto, devo reiterar que a capacidade do Apaches de executar "eventos" continuamente no suporte threads, mantendo o fio principal livre é meio kool. O único problema é que isso ainda cria o efeito de bloqueio onde o Apache diz: "Esta conexão está rodando, eu não vou bloquear o bloqueio até que esteja pronto", então seu nome não é realmente verdadeiro "event-mpm" como o Apache pode ainda sofrem com o cenário exposto no link próximo às seguintes linhas:

It can be merely a fraction of a second to generate or retrieve this page, but it takes 10 seconds to transmit it to a client with a bandwidth of 80 kbps (10 KB/s).

Os problemas do Apaches Really no upload dependem do que você está enviando. Como meus uploads são grandes e poderiam chegar nos GBs, o Apache poderia representar um problema, mas se você fizesse upload de imagens e não muito mais, há uma grande chance de que as alterações no Apache pudessem funcionar.

Isso é bem resumido.

    
por 16.12.2013 / 21:08

Tags