Al probar las cargas de trabajo Mono / Linux vs .NET / Windows, debe recordar que hay más en juego que solo el entorno de tiempo de ejecución.
Hay áreas en las que Linux funciona mejor que Windows (la mayoría de las operaciones de red e IO 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 las bibliotecas de clases, realmente depende de qué rutas de código esté utilizando. Como dijo JacksonH en una publicación anterior, puede golpear las rutas de código que se han optimizado en una implementación, pero no en la otra, y viceversa.
En las cargas de trabajo de ASP.NET, debe recordar que la configuración predeterminada enrutará todas las solicitudes entrantes a un solo proceso de "trabajador", mod_mono y Cherokee utilizan un enfoque similar:
(fuente: mono-project.com )
Al menos con Apache, admitimos un mecanismo en el que puede dividir las cargas de trabajo de la aplicación entre varios trabajadores, lo que ayuda bajo cargas elevadas, ya que evita cualquier bloqueo en el proceso y brinda a cada trabajador un conjunto completo de subprocesos para trabajar:
(fuente: mono-project.com )
Los detalles sobre cómo configurar esta configuración están disponibles aquí:
http://mono-project.com/Mod_mono