É normal ter largura de banda como o primeiro gargalo de escalabilidade com uma conexão de 100 Mbps?

3

Estou testando o estresse de um site que estamos fazendo e estamos encontrando um resultado surpreendente comparado às minhas expectativas:
Nosso site começa a carregar muito devagar com algumas centenas de pessoas simultâneas, embora o CPU e a memória estejam bem. Olhando para o Gerenciador de Tarefas, guia Rede, vejo que minha placa de rede de 100 Mbps está no máximo em 98%.

Por alguma razão, isso soa extremamente ridículo para mim ...
Toda vez que eu leio algo sobre escalabilidade é CPU, memória, cache, etc, etc, e aqui estou recebendo o gargalo na própria placa de rede.

Servimos todo o conteúdo gzipado e nossa página inicial é pesada, mas não muito. Eu nunca esperei que a placa de rede fosse o gargalo.

Isso é normal?
Todos estão tendo sites voltados para o público usando uma placa de rede de 1 Gbps?
Eu pensei que 100 Mbps seria o padrão.

Estou olhando para algo errado? Estou interpretando o gráfico na guia Rede incorretamente?

NOTA: Posso pensar em várias maneiras de corrigir isso, começando com a obtenção de uma placa de 1 Gbps e movendo arquivos estáticos para seus próprios servidores. Minha pergunta é principalmente se todo mundo está simplesmente usando conexões de 1 Gbps, o que me surpreenderia enormemente.

    
por Daniel Magliola 16.09.2009 / 19:51

4 respostas

2

Parece exatamente que você está saturando sua largura de banda disponível. Você precisa reduzir sua largura de banda ou mudar para uma placa de 1 Gbps, que é o que eu normalmente esperaria encontrar em um servidor da Web voltado para o público (certamente tem sido o caso de todas as máquinas de classe de servidor que toquei no último 10 anos - onde você encontrou um servidor com um cartão barato de 100mbps? É realmente um desktop reaproveitado?).

Algumas coisas para verificar ou considerar:

  • Você não menciona o armazenamento em cache. Se o seu site está configurado de alguma forma que não retorna bons cabeçalhos de cache para arquivos estáticos (como imagens), você terá um grande sucesso. Use o FireFox e o addon YSlow (do Yahoo) para mostrar o gráfico de pizza comparando o tamanho de página em cache e sem cache.
  • Qual é a sua metodologia de testes? Seus 100 "usuários" estão atingindo o site o mais rápido possível? E quanto ao cache - se seus usuários são apenas bots que ficam pegando alguma página, eles podem estar ignorando suas dicas de cache (veja o último ponto).
  • Você está usando a compactação gzip, mas quanto do seu conteúdo é texto (o gzip ajuda) e quanto são as imagens e outros arquivos binários (geralmente o gzip não faz nada)?
  • Você está usando sua largura de banda de rede para outras funções - como um servidor de banco de dados separado?
  • Você não é realmente específico sobre o tamanho das suas páginas (use o YSlow para descobrir). Você talvez esteja usando imagens grandes no lugar de miniaturas (já vi meu quinhão de sites que têm vários megabytes de imagens em uma página porque as ferramentas do designer / designer usaram apenas o atributo html width e height para reduzir os arquivos de imagem em miniaturas).
por 16.09.2009 / 20:57
3

Largura de banda como o primeiro gargalo não é algo que me surpreende. A CPU, a RAM, o HD e todos os outros componentes surgiram aos trancos e barrancos ao longo dos anos, enquanto 100 Mbps já existe há mais de uma década. Então você está em uma situação onde você tem uma boa caixa que é mais do que capaz de lidar com uma carga típica, mas está conectada usando tecnologia antiga + década.

Mesmo assim, você tem certeza de que sua simulação simultânea de 100 usuários é um reflexo preciso de como seria o tráfego no mundo real? Com 100 acessos absolutamente simultâneos, ele só precisa servir 1 megabit cada, ou 128K cada, para você atingir o tráfego de pico. Esse é um teto muito baixo, e meu sentimento é que - a menos que você esteja certo de que vai receber esse tipo de uso - talvez seja necessário revisar seu teste de carga.

    
por 16.09.2009 / 21:14
1

Durante anos, os servidores web mais simples e menos capazes têm divulgado sua velocidade e, por anos, os aficionados do Apache observaram que o Apache é rápido o suficiente para saturar facilmente a interface de rede. Parece que você tem um site eficiente. Você está realmente bombeando 100 megabits, ou a pilha de rede está ocupando muito espaço na CPU?

    
por 16.09.2009 / 20:05
1

Eu recomendaria verificar o lado da rede do seu ambiente:

  • não há tempestade de transmissão ou protocolos chatos estúpidos comendo sua largura de banda?
  • verifique se o switchport está sendo executado em 100 / full (não sei se você pode verificar isso no Windoze). Half duplex é muito ruim.
  • veja se os contadores de erros no switchport são > 0. em caso afirmativo, substitua os cabos e / ou NICs e tente outra porta.

Se não houver problemas, atualize para o gigabit (que deve ser o padrão para servidores de qualquer maneira).

    
por 16.09.2009 / 21:15