Diferenças de desempenho do servidor Web Linux vs Windows 7

5

Eu tentei recentemente executar alguns benchmarks e queria verificar algo no Windows e descobri enormes diferenças de desempenho entre servidores HTTP básicos na mesma máquina com Linux e Windows.

Eu testei vários servidores web IIS, Apache2, Lighttpd com diferentes clientes Ap do abache e meu próprio cliente e o resultado foi o mesmo id (pedidos por segundo) exibindo um página da Web HTML simples (página padrão do servidor da web) de várias centenas de tamanho de bytes:

           IIS 7.5   Apache 2.2  Lighttpd
Windows    750         800        -
Linux      -         9,300        22,000

Eu tentei desativar o Antivírus no Windows, mas o resultado não mudou.

Eu não entendo uma coisa, como no hardware mesmo (i5 2.4GHz 4G) um servidor da Web na tarefa mais trivial não pode lidar com as mesmas cargas.

Mesmo tu, eu sou "pro-Linux" Eu ainda não consigo entender como isso pode ser tão diferente, Ambos Sistemas operacionais mais recentes de 64 bits (Linux 2.6.35 e Windows 7), mas ainda a diferença de uma ordem de magnitude.

Ambiente:

  • SO Windows 7 64 bit pro. Linux Ubuntu 2.6.35
  • HW i5 2,4 GHz, 4 GB de memória
  • IIS 7.5, Apache 2.2
  • Cliente ab:
  • Chamado como ab -c 5 -n 10000 http://127.0.0.1/

Pergunta:

  • O que posso perder, então tenho grandes diferenças?

Antes de votar para fechar:

Note que é uma questão real, pois estou procurando por possíveis fatores que podem afetar diferenças de desempenho tão grandes (ordem de grandeza) quanto não posso acreditar O Windows pode se comportar tão mal.

Alguém?

    
por Artyom 29.09.2011 / 22:19

4 respostas

3

Para todos os respondentes que sugeriram usar o Windows Server 2008 ...

Era o AniVirus. Não foi desativado corretamente.

Uma vez desativado, o desempenho melhorou de 600 req / s para 5000 req / s - não tão bom quanto o Linux, mas pelo menos razoável.

    
por 05.10.2011 / 22:06
2

Eu estaria mais interessado em ver uma comparação com o Server R2. O Windows 7 não deve estar executando servidores da web, embora eu concorde que a diferença nos resultados parece extrema.

    
por 30.09.2011 / 13:37
0

Um teste que você poderia fazer para ver se ele tem a ver com a camada do SO ou inferior seria executar novamente o teste do Linux enquanto estiver em uma VM no Windows 7. Se você tiver números semelhantes, mas um pouco menos, o linux original provam que o Windows 7 é responsável. Se você tiver números semelhantes ao Windows 7, poderá ter um problema com a maneira como o Windows 7 usa seu hardware, potencialmente um problema de driver ou um problema de baixo nível semelhante.

    
por 29.09.2011 / 23:12
-1

Criar uma página estática com pouco ou nenhum conteúdo enquanto usa um número limitado de conexões é um teste ruim.

O que você quer fazer é simular mais de 30 usuários acessando páginas que atingem PHP e MySQL com vários recursos.

Nesse caso, você verá um WAMP bem configurado (como WampDeveloper, que é o que eu uso) corresponder ou superar uma configuração LAMP semelhante.

No Windows, os threads são o mecanismo preferido (em comparação com os modelos baseados em processos no Linux).

Certifique-se de estar usando o PHP como um módulo baseado em encadeamentos (não o processo FCGI, embora isso também funcione).

Edite suas configurações do Apache KeepAlive e MPM ...

C: \ WampDeveloper \ Config \ Apache \ extra \ httpd-default.conf

KeepAlive On
KeepAliveTimeout 1

C: \ WampDeveloper \ Config \ Apache \ extra \ httpd-mpm.conf

ThreadsPerChild 64
ThreadLimit 64

Isto irá configurar cerca de 64 threads, cada um mantendo o mesmo cliente por cerca de 1 segundo.

ab -c 32 -n 10000 http://127.0.0.1/page-with-PHP-and-MySQL-and-Assets.php

    
por 19.10.2011 / 20:23