Como melhorar o Windows Server 2008 R2 para lidar com muitas conexões?

9

Já faz alguns dias que estou tentando descobrir como resolver esse problema. Primeiro de tudo, eu estou executando um site com uma visão de página média diária de 350.000. Anteriormente, todo o gerenciamento de anúncios (rastreamento de clique e impressão que cada anúncio veiculou) e o conteúdo eram veiculados em um único servidor com as seguintes especificações:

Server 1
OS: Windows 2008 R2 64-Bit
CPU: Intel® Core™ i5 - 4 cores
RAM: 8 GB
Storage: 2 x 1 TB hard drives
Bandwidth: 10 TB per month

Para melhorar a velocidade de nosso website, decidi separar o script de gerenciamento de anúncios para outro servidor dedicado, pois temos mais de 15 anunciantes para 30 anunciantes por página.

Server 2
OS: Windows 2008 R2 64-Bit
CPU: Intel® Core™ i5 - 4 cores
RAM: 4 GB
Storage: 2 x 300 GB hard drives
Bandwidth: 10 TB per month

O problema
O problema é que Server 1 pode lidar com o conteúdo e o sistema de anúncios. Agora, retiro o sistema de anúncios e coloco em Server 2 . Server 2 mal pode veicular apenas o sistema de anúncios.

Teste

  • Antes de tudo, mudei 75% dos anúncios para Server 2 . E então, execute um ping para o servidor: ping -t xxxxx . [Eu fiz o ping por 10 minutos e seu seguinte padrão similar como abaixo]
Reply from xxxxx bytes=32 time=290ms TTL=116
Reply from xxxxx bytes=32 time=289ms TTL=116
Reply from xxxxx bytes=32 time=320ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Reply from xxxxx bytes=32 time=348ms TTL=116
Reply from xxxxx bytes=32 time=284ms TTL=116
  • Em seguida, movi 100% dos anúncios para Server 2 . Em seguida, execute um ping para o servidor novamente. [Eu fiz o ping por 10 minutos e seu seguinte padrão similar como abaixo]
Reply from xxxxx bytes=32 time=290ms TTL=116
Request timed out
Reply from xxxxx bytes=32 time=320ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Request timed out
Request timed out
Reply from xxxxx bytes=32 time=284ms TTL=116

Tentativas

  1. Aumentar MaxUserPort e TcpNumConnection
  2. Reinicie o servidor
  3. Aumentar o IIS Max Instances e Instance MaxRequests

Recurso do servidor

  • Apenas 10% -15% da conexão de rede é usada
  • Apenas 10% -15% da CPU é usada
  • Apenas 25% da memória é usada
por Monkey D Luffy 30.10.2013 / 04:27

2 respostas

4

Bem, vamos começar. Isso é mais longo.

Você julgou mal os fatos aqui que parece. O Windows - mesmo o desatualizado 2008 R2 que você deve atualizar o mais rápido possível - é totalmente capaz de lidar com um volume que meu celular não tem problemas para lidar.

Então, isso deixa 3 possíveis áreas de problemas:

  • Instalação. Seus drivers podem ser ruins. Dado que você executa um sistema operacional desatualizado - quão bons são os seus drivers? Atualizá-los - isso pode causar todos os tipos de problemas.

  • Rede. Este seriamente parece "Meu carro é muito lento, por favor me ajude a torná-lo mais rápido" quando o problema é que você gasta mais tempo em um engarrafamento e reclamação sobre o tráfego não se movendo. Não é um problema de ajuste de carro. O tráfego de 10 TB não diz nada sobre o congestionamento da rede. Assista suas estatísticas de tráfego de rede em sua placa de rede e reaja de acordo - se elas não estiverem no topo da velocidade que devem ser ... seu provedor está exagerado. Simples assim.

  • Código. Pode ser que você precise de mais memória RAM (o computador está ocupado trocando para RAM em vez de processamento) ou códigos ruins estão usando toda a sua CPU para um nível que faz com que a pilha TCP não reaja corretamente (sim, as respostas ICMP são baixas). Isso seria brutal - mas é outra maneira de verificar. Também pode ser que você sobrecarregue os discos acessando-os com muita frequência em vez de armazenar em cache na memória RAM, mas de alguma forma não consigo ver isso levando a pings perdidos. Qualquer problema aqui, no entanto, não é algo que um administrador pode manipular - você tem que jogar hardware nele, ou pegar um bastão e acertar o programador com ele até ele consertar (se é um erro de nível "estúpido" que come o desempenho - se não for, então é muito mais difícil obter ganhos sérios e pode ser que você precise de hardware mais pesado).

Definitivamente, não requer ajuste de janelas - uma janela bem configurada pode oferecer muito mais do que isso. Meus servidores de arquivos regularmente ß durante períodos de tempo mais longos - entregam 4-6gigabit a partir de uma configuração relativamente disponível.

Agora, todos os números que você dá não dizem nada Sério.

  • 10-15% da CPU é usada PODERIA significar troca.
  • 25% de memória é usada provavelmente é um bom indicador agora a troca acontece, mas ainda assim pode significar que a CPU está esperando por IO.
  • 10% -15% de rede é usado significa - absolutamente nada, porque é apenas o seu lado da rede. E quanto ao upstream? E se o provedor estiver colocando 20 servidores com 1 gigabit em um uplink de 1 gigabit do rack e isso está transbordando como um inferno?

O último ponto é bastante provável - os pacotes descartados são um bom indicador disso. E isso não será visível para você.

Meu conselho ... desligue qualquer coisa em uma máquina por um momento, faça um teste de velocidade externo com um grande arquivo estático. Eu aposto que você tem um congestionamento mais alto.

Tudo o que você fez até agora - maxuserport, tcpnumconnection, reiniciando o servidor, brincando com as configurações do IIS - está totalmente desativado e não faz nada no melhor lugar. Bater um martelo em um carro lento nunca conserta nada - especialmente se o carro estiver lento porque está em um engarrafamento. Eu iria desfazer todas as alterações e começar a analisar o problema, não apenas o seu servidor. Eu apostaria no congestionamento da rede no momento.

    
por 30.10.2013 / 07:35
0

Os pings são externos aos dois servidores? Nesse caso, tente o ping do servidor um para o servidor dois. Se os resultados forem totalmente diferentes de quando efetuar ping externamente, isso mostrará que o problema pode não se dever ao servidor dois. Além disso, dê uma olhada no monitor de recursos para o comprimento da fila de disco para as unidades e o tempo ativo - algumas informações adicionais que podem destacar um problema.

    
por 30.10.2013 / 11:14