O Apache Benchmark é lento na rede pública, com as magnitudes mais rápidas localmente. Quais são algumas das coisas que faço para acelerar isso?

3

Estou testando meu servidor Linode Ubuntu 14 de 64 bits, é o servidor mais básico disponível deles. Eu estou usando o Apache Benchmark para testar o servidor, bem como um script multithread que eu escrevi em Python, mas mais sobre isso mais tarde. Usando AB notei que recebo cerca de 7k solicitações por segundo quando executado localmente a partir do próprio servidor, mas apenas por volta de 15 quando executado de outra rede / internet. O tempo de resposta também é de cerca de 150 ms para 1000 conexões simultâneas, localmente. Remotamente, o tempo de resposta é de cerca de 1,5 a 2,5 segundos para 100 conexões simultâneas. A rede da qual estou executando os testes remotos tem muita largura de banda e o computador do qual estou executando tem bastante velocidade de ram e processador; é uma rede de negócios rápida. Eu até tentei outras duas redes nos EUA, em outros dois computadores e as velocidades são as mesmas.

Ao executar meu script multi-thread, eu noto que ele falha assim que eu tento mais de 100 solicitações simultâneas, isso é de redes externas. Ainda não tentei meu script localmente no servidor, já que eu preciso atualizar meu Python no servidor para 3+ ou alterar meu script para ser compatível com 2.7. Eu testei isso localmente e obtive 150 ms tempo de resposta ao executar o script com até 1.000 conexões multissegmentadas, é simplesmente usar o urllib2.

Estou testando isso diretamente contra o nginx (um arquivo estático), um aplicativo pywsgi que está por trás do nginx, bem como diretamente para o pywsgi. O aplicativo pywsgi tem uma rota simples que responde com uma resposta básica, por isso deve ser rápido. Não é de surpreender que o nginx- > pywsgi forneça os melhores resultados, provavelmente devido ao modo como ele atende às solicitações. Há algo específico na rede da Linode que está causando esse problema? As ordens de magnitude de diferença entre testes internos e externos me fazem pensar em qual poderia ser a causa. A única outra coisa no caminho seria o firewall iptables, apenas filtrando em http / s e ssh.

O dmesg não tem informações relativas aos meus testes.

    
por scape 13.11.2012 / 21:30

1 resposta

1

Parece que há um gargalo de rede em algum lugar entre sua máquina desktop e sua máquina Linode. Algumas sugestões:

  1. Compare os tempos de ping da sua área de trabalho ao seu Linode e a outros locais na Internet, como google.com e yahoo.com.
  2. Use traceroute your-linode-ip da sua área de trabalho para ver se isso ajuda a encontrar o gargalo.
  3. Experimente seu Linode usando o link selecionando os locais da Costa Leste e da Costa Oeste e veja como eles variam.
por 16.01.2013 / 21:33