Temos uma máquina quad-core i7, 8G em uma rede gigabit. Existem 4 pontos de acesso Wi-Fi aos quais ligamos 50 iPads que tem um aplicativo que baixa um arquivo do servidor.
O servidor tem o NGINX sendo executado com um local para uma pasta no servidor. A pasta tem um arquivo de 190 MB.
Testamos 3 iPads. O download levou cerca de 1 minuto e 10 segundos, ou 2,7 Mbps.
Em seguida, iniciamos o download do arquivo o mais concorrentemente possível nos 50 iPads.
O que vemos são 20 iPads falhando e 30 sucedendo. No log de acesso do NGINX, vemos 30 200 OK com a contagem total de bytes de 190MB e 20 com contagens de bytes em torno da marca de 80MB.
Durante o teste, eu estava correndo em cima. Eu notei que eth0 não era mais do que 6% a qualquer momento. CPU foi < 1% de uso, a RAM foi 5GB livre, imóvel. Os processos NGINX estavam algumas vezes no topo da lista de processos, mas na maioria das vezes não. Encomendado por RAM e, em seguida, CPU. si estava no auge 1900K e assim foi 90Mbps.
Não sei como depurar este problema. Nossa equipe de rede está chegando hoje, mas quero poder dizer-lhes algo útil. Idealmente - não é o servidor. Eu não acho que é o servidor dado as leituras no topo. Eu apreciaria outras maneiras de depurar esse tipo de problema, onde o log de acesso mostra claramente que os clientes não concluíram os downloads.
Se aqueles que falharam chegarem a 80MB, então nunca houve um problema com eles conectando e baixando ao lado daqueles que tiveram sucesso, certo? Algo em torno de 80MB foi interrompido? Parece interessante que muitas das falhas foram em torno da mesma marca (alguns não eram). Isso sugere um sinal de rede? O próprio servidor poderia, por algum motivo, decidir não continuar cumprindo as conexões existentes?
Obrigado