
Estoy configurando un servidor de desarrollo y quiero configurarlo para que sirva páginas ASP.NET usando Mono. Estoy pensando en usar Cherokee y Mono (http://www.cherokee-project.com/doc/cookbook_mono.html) y me pregunté si alguien había realizado alguna prueba de rendimiento comparando la pila basada en Unix con la basada en Windows.
Respuesta1
Al probar cargas de trabajo Mono/Linux frente a .NET/Windows, debe recordar que hay más en juego que solo el entorno de ejecución.
Hay áreas en las que Linux funciona mejor que Windows (la mayoría de las operaciones de IO y de red tienden a ser más rápidas para programas C comparables). Al mismo tiempo, .NET tiene un recolector de basura más avanzado y un compilador JIT más avanzado.
Cuando se trata de bibliotecas de clases, realmente depende de qué rutas de código esté utilizando. Como dijo JacksonH en una publicación anterior, puedes acceder a rutas de código que han sido optimizadas en una implementación, pero no en la otra, y viceversa.
En cargas de trabajo ASP.NET, debe recordar que la configuración predeterminada enrutará todas las solicitudes entrantes a un único proceso "trabajador", mod_mono y Cherokee utilizan un enfoque similar:
(fuente:mono-proyecto.com)
Al menos con Apache admitimos un mecanismo en el que se pueden dividir las cargas de trabajo de las aplicaciones entre varios trabajadores, lo que ayuda en cargas elevadas, ya que evita cualquier bloqueo durante el proceso y le brinda a cada trabajador un grupo de subprocesos completo desde el cual trabajar:
(fuente:mono-proyecto.com)
Los detalles sobre cómo configurar esta configuración están disponibles aquí:
Respuesta2
Esta es una especie de falta de respuesta. Sin embargo, no hay una respuesta real aquí. Desafortunadamente, esto depende en gran medida de la aplicación. Su aplicación podría dar con algo que Mono hace muy bien o podría estar usando mucho algo que está mal implementado o tiene algunos errores. En realidad, no se trata de que Mono sea X veces más lento/rápido que IIS.
Mi sugerencia es tomar su aplicación, implementarla en dos instancias EC2 diferentes (una Windows y otra Mono) y realizar las pruebas allí. Si encuentra problemas importantes en la instancia Mono, infórmenos e intentaremos mejorar las cosas.
Dicho todo esto, puedo decirles por experiencia personal que Mono aspx funciona muy bien.