Existe uma maneira de limitar a rapidez com que o apachebench se conecta ao servidor?

1

Estou tentando enfatizar o teste de um script PHP específico que força um arquivo muito grande a ser baixado, mas especificamente quando os clientes com conexões lentas estão fazendo a solicitação. Também quero testar simultaneamente como o restante do site funciona com essa carga. Eu tenho FiOS, então fazer algumas dúzias de conexões simultâneas realmente não colocam o servidor sob carga por muito tempo (não nos importamos com o volume, já que não prevemos muitas conexões simultâneas para este arquivo, apenas algumas dúzias realmente lentos) e eu quero testá-lo como se eu estivesse em uma conexão lenta de digamos 100kb / seg. Existe uma maneira de limitar a rapidez com que o ApacheBenchmark se conecta a um site? Ou existe outra maneira de temporariamente diminuir minha conexão com este site? Estou executando o Mac OS X localmente e o servidor é uma caixa do Windows que executa o Apache.

    
por Chris Bloom 31.08.2010 / 03:17

2 respostas

1

Uma possibilidade seria usar o conjunto de recursos IPFW do OS X. O IPFW é o firewall de software do OS X que também suporta a modelagem de tráfego. Aqui está como configurá-lo (assumindo um 1.2.3.4 como o endereço IP do servidor web):

  1. Abra o aplicativo Terminal para obter uma linha de comando.
  2. Crie o dispositivo de rede virtual em sudo ipfw pipe 1 config bw 15Kbyte/s
  3. Crie as duas regras que redirecionarão o tráfego de / para o servidor da Web por meio do dispositivo virtual:
    sudo ipfw add 1 pipe 1 ip from 1.2.3.4 to any %código%

Agora, todo o tráfego entre o computador do OS X e o servidor da Web será limitado a 15 KB / s (altere esse valor conforme necessário).

Para remover a configuração para reverter para largura de banda ilimitada:
sudo ipfw add 2 pipe 1 ip from any to 1.2.3.4
sudo ipfw delete 1 e sudo ipfw delete 2

Advertência:
1. Não tenho certeza se a configuração, uma vez definida, sobrevive em uma reinicialização.
2. Isso pressupõe que seu firewall de software ainda não esteja configurado; se for, então as regras 1 e 2 já podem existir e os comandos aqui causariam erros.

Espero que isso ajude.

    
por 31.08.2010 / 03:42
0

Estou feliz que você esteja fazendo isso; muitas pessoas não entendem que seus aplicativos se comportarão de maneira fundamentalmente diferente quando saírem do laboratório para a "Internet real".

A categoria geral do que você está procurando é um emulador de WAN . Eles vendem dispositivos de hardware (e software) que fazem isso de cerca de US $ 2k se você quiser fazer muito isso e não apenas variar a largura de banda, mas a latência, o jitter e outros fatores. Shunra e Linktropy são dois bons fornecedores.

Mas também há muitas soluções somente de software. A maioria deles roda no Linux, mas imagino que alguns possam ser persuadidos a funcionar no OSX. Wanem é um bom free. ns-2 é um simulador gratuito , que é diferente e provavelmente mais complicado do que você quer, você constrói uma rede falsa e simula isso.

Ou dummynet, mas vou acrescentar isso à boa resposta do Urgoll.

    
por 31.08.2010 / 04:43