0
votes

Where can I find info on how many requests per second a Katana-on-OWIN implementation (Azure-hosted) can support?

There are performance benchmarks all over the place for IIS but I can't seem to find comparable data anywhere.

I am concerned that if I do something like this in a vacuum

public async Task Invoke(IDictionary<string, object> environment)
    {
        var response = environment["owin.ResponseBody"] as Stream;
        using (var writer = new StreamWriter(response))
        {
            if (_options.IncludeTimestamp)
            {
                await writer.WriteAsync(DateTime.Now.ToLongTimeString());
            }
            await writer.WriteAsync("Hello, " + _options.Name + "!");
        }
    }

(taken from http://odetocode.com/blogs/scott/archive/2013/11/11/writing-owin-middleware.aspx) and compare it to a simple .aspx.cs page that writes "Hello world" I will not get an apples-to-apples performance metric.

The way IIS handles threading and pooling is well-documented. But I am not sure about how Katana-on-OWIN (self hosted or under Azure) handles simultaneous requests and works "under load".

Thanks.

1

1 Answers

1
votes

OWIN is merely an abstraction for running web applications on different web servers. Katana is one implementation. The most important performance numbers for requests/second are those for web servers, not OWIN or Katana.

OWIN performance comparisons would only make sense if you wanted to know how much overhead a framework added to your web app and could be tested using the Microsoft.Owin.Testing TestServer in isolation of network latency. Here, you could compare differences in Katana, Dyfrig, NancyFx, Web API, and others.