3

It was given on various tech blogs/sites that New web server kestrel introduced with asp.net core has a performance advantage over IIS since it uses libuv library underneath which is based on single threaded event loop model.

What I failed to understand how is this different if I use async await for I/O tasks in C# and use IIS instead of Kestrel. Since async await also is a non blocking call, so I fail to understand the throughput/performance benefit.

Please can somebody elaborate on this in simple words.

I know kestrel is cross platform but my query was around the performance /throughput benefits which I should get using kestrel, so let me rephrase my questions if I am only targeting Windows , would I be getting any performance benefit using kestrel vs IIS. most of the links that I have gone through states that Kestrel uses libuv and hence it gives some performance benefits but doesn't go in detail as to what it is doing differently which makes it faster. if I dont use any IIS modules then would the performance be comparable

saurabh vats
  • 349
  • 3
  • 13

1 Answers1

0

Whether to use the async / await keywoeds is not related to whether to use IIS or Kestrel.

IIS can only run on a Microsoft Windows Operating System - usually a Windows Server, but Windows 10, for example, can also run IIS.

Kestrel is a cross-platform web server that may be hosted behind IIS / Apache / etc. depending on the server operating system.

For a more indepth explanation of IIS & Kestrel as well as the cross platform opportunities, please see ASP.Net Core Web Servers and for a more detailed explanation of async / await, please try using async / await.

  • 1
    hi Jay, thanks for taking out time and replying to my query. I know kestrel is cross platform but my query was around the performance /throughput benefits which I should get using kestrel, so let me rephrase my questions if I am only targeting Windows , would I be getting any performance benefit using kestrel vs IIS. most of the links that I have gone through states that Kestrel uses libuv and hence it gives some performance benefits but doesn't go in detail as to what it is doing differently which makes it faster. if I dont use any IIS modules then would the performance be comparable – saurabh vats Apr 29 '18 at 15:53
  • @saurabhvats - Use the _edit_ link to add this to your question. – H H Apr 29 '18 at 16:57
  • Hi @saurabhvats - the first of the links refers to the recommendation to use both IIS and Kestrel. IIS is very good at its job and "Microsoft suggests always using another web server in front of Kestrel for public websites." SSL certificates, logging, Request filtering etc are all "in the box" for IIS - if you only self-host (not all ISPs allow that option), you will have to deal with this tasks too. Whilst do-able, IIS already does. Basically, this is not an either or scenario - go for both and save yourself loads of work! – Jay Barden May 01 '18 at 08:34