Qualcuno ha avuto numeri di prestazioni confrontando IIS e .NET con Cherokee e Mono?


8

Sto configurando un server di sviluppo e voglio configurarlo per servire le pagine ASP.NET usando Mono. Sto pensando di utilizzare Cherokee e Mono ( http://www.cherokee-project.com/doc/cookbook_mono.html ) e mi chiedevo se qualcuno avesse effettuato dei test delle prestazioni confrontando lo stack basato su Unix con quello basato su Windows.


Ho finito per andare su SuseGallery [1] e ho fatto una rapida ricerca di Mono e ho trovato JEOS Mono ASP.net [2] che era già configurato per quello che volevo. Ho appena iniziato a utilizzare per alcune prove di migrazione ASP.net su Windows con VirtualBox. Avevo solo bisogno di avviare Apache e configurare il port forwarding. [1]: susegallery.com [2]: susegallery.com/a/0uPadf/jeos-mono-aspnet
Larry Smithmier,

Risposte:


7

Durante il test dei carichi di lavoro Mono / Linux vs .NET / Windows, è necessario ricordare che c'è molto di più in gioco oltre al solo ambiente di runtime.

Vi sono aree in cui Linux ha prestazioni migliori di Windows (la maggior parte delle operazioni di I / O in rete tende ad essere più veloce per programmi C comparabili). Allo stesso tempo, .NET ha un garbage collector più avanzato e un compilatore JIT più avanzato.

Quando si tratta delle librerie di classi, dipende davvero da quali percorsi di codice si sta utilizzando. Come ha detto JacksonH in un post precedente, puoi colpire percorsi di codice che sono stati ottimizzati in un'implementazione, ma non nell'altra, e viceversa.

Sui carichi di lavoro ASP.NET devi ricordare che l'installazione predefinita indirizzerà tutte le richieste in arrivo a un singolo processo "worker", mod_mono e Cherokee usano un approccio simile:

Molti server HTTP su un server mod-mono
(fonte: mono-project.com )

Almeno con Apache supportiamo un meccanismo in cui è possibile dividere i carichi di lavoro delle applicazioni su più lavoratori, che aiuta sotto carichi elevati poiché evita qualsiasi blocco in-process e offre a ciascun lavoratore un intero pool di thread da cui lavorare:

Richieste di routing a diversi host ASP.NET con mod_mono
(fonte: mono-project.com )
I dettagli su come configurare questa configurazione sono disponibili qui:

http://mono-project.com/Mod_mono


7

Questa è una specie di non risposta. Tuttavia non c'è una vera risposta qui. Sfortunatamente questa cosa dipende fortemente dall'applicazione. La tua app potrebbe colpire qualcosa che Mono fa davvero bene o potresti usare pesantemente qualcosa che è implementato male o presenta alcuni bug. Non è davvero un caso di Mono essere X volte più lento / più veloce di IIS.

Il mio suggerimento è di prendere la tua app, distribuirla su due diverse istanze EC2 (una Windows e una Mono) e fare i test lì. Se riscontri problemi importanti sull'istanza Mono, segnalali e cercheremo di migliorare le cose.

Detto questo, per esperienza personale posso dirti che Mono aspx si comporta davvero bene.


Secondo: utilizzo Apache + mod_mono e si comporta molto bene una volta iniziato. L'unica volta che vedo la lentezza è durante il caricamento della pagina iniziale, ma questo è comune con praticamente tutto (Rails, ecc.).
BR
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.