I am trying to fine tune an IIS 10 web server for the sole purpose of serving static files.
I’ve disabled session state, disabled managed code, added all necessary public cache control headers with no expiry.
But still it performs very very slow in case a user sends simultaneous requests over SSL. What exactly happens is that browser initiates all requests at one (since it’s HTTP/2) but server responds one after another. It’s like that server can’t process those requests in parallel, which I can’t understand why.
What I’m looking for is the reason that IIS doesn’t start sending responses in parallel (Like what happens if I use a CDN) and apparently sends them one at a time.
Here is a water fall for what’s happening with IIS:
As you can see wait times are stacking after each other to the point that last request takes 47s to complete.
But when I’m testing this by requesting those resources off a CDN it works like this:
And all of them are being downloaded in 1 second simultaneously.
Now I’m aware that a CDN should have a better performance for sure, and I’m not trying to match that, but I can’t understand why IIS is responding one at a time and not in parallel. I believe there should be something that can be done to eliminate TTFB and enable IIS to respond multiple requests at once.