Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Performance of ASP.NET in Mono(Linux) vs IIS(Window)

Tags:

asp.net

iis

mono

Is there any performance different between hosting your asp.net in mono on linux and iis on window server?

like image 549
Ervin Ter Avatar asked May 30 '09 06:05

Ervin Ter


People also ask

What is Kestrel vs IIS?

The main difference between IIS and Kestrel is that Kestrel is a cross-platform server. It runs on Linux, Windows, and Mac, whereas IIS is Windows-specific. Another essential difference between the two is that Kestrel is fully open-source, whereas IIS is closed-source and developed and maintained only by Microsoft.

Which web server is used to run ASP.NET programs?

ASP.NET Core ships with Kestrel server, which is the default, cross-platform HTTP server. ASP.NET Core ships with Kestrel server, which is the default, cross-platform HTTP server.

How does ASP.NET work with IIS?

IIS works with ASP.NET Core A request comes in to the IIS server from the web, which sends the request to the ASP.NET Core application, which processes the request and sends its response back to the IIS server and the client who originated the request.

Does .NET core use IIS?

IIS and ASP.NET CoreIt's not hosted inside of IIS and it doesn't need IIS to run. ASP.NET Core applications have their own self-hosted Web server and process requests internally using this self-hosted server instance.


2 Answers

Of course there is a difference, just like there is a performance difference between Java and .Net. However, it is going to vary widely based on what the application is doing.

There are things where .Net is much faster than Mono. There are things where Mono is much faster than .Net. There are things where they perform roughly equal. The same holds true when comparing applications running on Windows or Linux. The same holds true when comparing applications running on IIS and Apache.

Likely, either can run your application fast enough, and you will find that your performance is going to be driven by your programming techniques. The difference of a few requests per second probably isn't a huge issue unless you have a large server farm, in which case you most likely have the resources to test on both and see which is faster for your particular application.

like image 81
jpobst Avatar answered Sep 20 '22 15:09

jpobst


In regards to the suggestion by lextm that publishing the results of perf comparisons is "not possible", the End-User License Agreement (aka EULA) for Windows Vista Ultimate allows it, with conditions.

MICROSOFT .NET BENCHMARK TESTING. The software includes one or more components of the .NET Framework 3.0 (“.NET Components”). You may conduct internal benchmark testing of those components. You may disclose the results of any benchmark test of those components, provided that you comply with the conditions set forth at http://go.microsoft.com/fwlink/?LinkID=66406. Notwithstanding any other agreement you may have with Microsoft, if you disclose such benchmark test results, Microsoft shall have the right to disclose the results of benchmark tests it conducts of your products that compete with the applicable .NET Component, provided it complies with the same conditions set forth at http://go.microsoft.com/fwlink/?LinkID=66406.

The conditions, as I read them, are reasonable disclosure requirements: the source code you used to do the testing, the versions of software you tested, the date you conducted the tests, the configuration and optimizations you made, etc.

The EULA for Windows Server 2003 includes the same provisions. I couldn't find the EULA for Windows Server 2008 (the latest incarnation) but I assume the benchmarking provisions remain.

Addendum: If you look in the EULA for Windows7, you will probably find a no-benchmarking clause, or more accurately a no-publish clause; this is because Win7 is still in pre-release. When it is officially released, expect the standard benchmark publishing conditions to be present.

In the past Microsoft had a more restrictive policy on this topic. Basically: you need permission from us (Microsoft) to disclose performance comparisons. This policy has been relaxed, even retroactively to .NET v1.0 and v1.1, as per the link in the above EULA.

like image 37
Cheeso Avatar answered Sep 19 '22 15:09

Cheeso