Alguém tem algum número de desempenho comparando IIS e .NET com Cherokee e Mono?

Alguém tem algum número de desempenho comparando IIS e .NET com Cherokee e Mono?

Estou configurando um servidor de desenvolvimento e quero configurá-lo para servir páginas ASP.NET usando Mono. Estou planejando usar Cherokee e Mono (http://www.cherokee-project.com/doc/cookbook_mono.html) e me perguntei se alguém havia feito algum teste de desempenho comparando a pilha baseada em Unix com a baseada em Windows.

Responder1

Ao testar cargas de trabalho Mono/Linux versus .NET/Windows, você deve lembrar que há mais coisas em jogo do que apenas o ambiente de tempo de execução.

Existem áreas em que o Linux tem um desempenho melhor que o Windows (a maioria das operações de E/S e de rede tendem a ser mais rápidas para programas C comparáveis). Ao mesmo tempo, o .NET possui um coletor de lixo mais avançado e um compilador JIT mais avançado.

Quando se trata de bibliotecas de classes, isso realmente depende de quais caminhos de código você está usando. Como JacksonH disse em um post anterior, você pode acessar caminhos de código que foram otimizados em uma implementação, mas não na outra, e vice-versa.

Nas cargas de trabalho do ASP.NET, você deve lembrar que a configuração padrão encaminhará todas as solicitações recebidas para um único processo "trabalhador", mod_mono e Cherokee usam uma abordagem semelhante:

Muitos servidores HTTP para um servidor mod-mono
(fonte:mono-project.com)

Pelo menos com o Apache, oferecemos suporte a um mecanismo onde você pode dividir as cargas de trabalho do aplicativo entre vários trabalhadores, o que ajuda sob cargas altas, pois evita qualquer bloqueio no processo e fornece a cada trabalhador um conjunto completo de threads para trabalhar:

Roteando solicitações para diferentes hosts ASP.NET com mod_mono
(fonte:mono-project.com)
Os detalhes sobre como configurar esta configuração estão disponíveis aqui:

http://mono-project.com/Mod_mono

Responder2

Isso é meio que uma não resposta. No entanto, não há uma resposta real aqui. Infelizmente, isso é altamente dependente do aplicativo. Seu aplicativo pode encontrar algo que o Mono faz muito bem ou você pode estar usando muito algo que está mal implementado ou tem alguns bugs. Não é realmente o caso do Mono ser X vezes mais lento/mais rápido que o IIS.

Minha sugestão é pegar seu aplicativo, implantá-lo em duas instâncias EC2 diferentes (uma Windows e uma Mono) e fazer seus testes lá. Se você encontrar problemas importantes na instância Mono, informe-os e tentaremos melhorar as coisas.

Dito isso, posso dizer por experiência própria que o Mono aspx tem um desempenho muito bom.

informação relacionada