Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am setting up a development server and want to set it up to serve ASP.NET pages using Mono. I am planning on using Cherokee and Mono (http://www.cherokee-project.com/doc/cookbook_mono.html) and wondered if anyone had done any performance testing comparing the Unix based stack to the Windows based.

share|improve this question
I ended up going to the SuseGallery[1] and did a quick search for Mono and found JEOS Mono ASP.net[2] which was already setup for what I wanted. I have just started using for some ASP.net migration trials on Windows with VirtualBox. I just needed to start Apache and set up port forwarding. [1]: susegallery.com [2]: susegallery.com/a/0uPadf/jeos-mono-aspnet – Larry Smithmier Aug 18 '10 at 1:07
up vote 7 down vote accepted

When testing Mono/Linux vs .NET/Windows workloads, you have to remember that there is more at play than just the runtime environment.

There are areas in which Linux performs better than Windows (Most IO and network operations tend to be faster for comparable C programs). At the same time, .NET has a more advanced garbage collector and a more advanced JIT compiler.

When it comes to the class libraries, it really depends on what code paths you are using. As JacksonH said on a previous post, you can hit code paths that have been optimized in one implementation, but not on the other, and viceversa.

On ASP.NET workloads you have to remember that the default setup will route all incoming requests to a single "worker" process, mod_mono and Cherokee use a similar approach:

Many HTTP server to one mod-mono-server

At least with Apache we support a mechanism where you can divide application workloads across multiple workers, which helps under high loads as it avoids any in-process locking and gives each worker a whole thread pool to work from:

Routing requests to different ASP.NET hosts with mod_mono The details on how to configure this setup are available here:


share|improve this answer

This is kinda a non-answer. However there isn't a real answer here. Unfortunately this thing is highly application-dependent. Your app could hit on something that Mono happens to do really well or you might be heavily using something that is implemented poorly or has some bugs. It's not really a case of Mono being X times slower/faster than IIS.

My suggestion is to take your app, deploy it on two different EC2 instances (one Windows and one Mono) and do your testing there. If you find major issues on the Mono instance, please report them and we'll try to get things improved.

All that being said, I can tell you from personal experience that Mono aspx does perform really well.

share|improve this answer
Seconding--I use Apache + mod_mono, and it performs very well once it gets started. The only time I see slowness is during the initial page load, but this is common with pretty much everything (Rails, etc.). – B.R. Aug 11 '10 at 16:44

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.