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

8

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

Larry Smithmier
fonte
Acabei indo ao SuseGallery [1] e fiz uma rápida pesquisa pelo Mono e encontrei o JEOS Mono ASP.net [2], que já estava configurado para o que eu queria. Acabei de começar a usar alguns testes de migração do ASP.net no Windows com o VirtualBox. Eu só precisava iniciar o Apache e configurar o encaminhamento de porta. [1]: susegallery.com [2]: susegallery.com/a/0uPadf/jeos-mono-aspnet
Larry Smithmier

Respostas:

7

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

Há á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, realmente depende de quais caminhos de código você está usando. Como JacksonH disse em uma postagem anterior, você pode encontrar 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 se lembrar que a configuração padrão encaminhará todas as solicitações recebidas para um único processo de "trabalho", 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 no qual você pode dividir as cargas de trabalho de aplicativos em vários trabalhadores, o que ajuda sob altas cargas, pois evita qualquer bloqueio em processo e oferece a cada trabalhador um pool de threads inteiro para trabalhar:

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

http://mono-project.com/Mod_mono

miguel.de.icaza
fonte
7

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

Minha sugestão é levar seu aplicativo, implantá-lo em duas instâncias diferentes do EC2 (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.

Tudo o que foi dito, posso dizer por experiência pessoal que o Mono aspx tem um desempenho muito bom.

jacksonh
fonte
Destacamento - eu uso o Apache + mod_mono, e ele executa muito bem quando é iniciado. A única vez em que vejo lentidão é durante o carregamento inicial da página, mas isso é comum em praticamente tudo (Rails, etc.).
BR