We're running an Windows 2012R2 VM with IIS 8.5 with the purpose of serving out flat files, no ASP.NET or other dynamic content is in use. The server is configured to map 5 sites to the same IP & port filtering on FQDN and only serving HTML, JS, and CSS files across those sites. For the most part, the files are coming from virtual directories that are mapped to local folders however I am noticing the every so often files are randomly slow to load. My detailed testing has been in Chrome though I have seen similar "random" slowness in Firefox and IE.
As per configuration, most of the defaults are in place. Each site has its own application pool and those all have default configurations, and since ASP.NET isn't installed, the options are pretty basic for what is even available. After some searching I've enabled output caching in user-mode & kernel-mode set to use "file change notifications" and Compression was on by default for static and dynamic content.
The slowness comes when the sites are loading, ~54 files load at start. For various reasons most of these won't be merged, but down the road a few can be, however every so often IIS hangs on delivering one of the files. A 100KB file will deliver in a few milliseconds followed immediately by a 50KB file taking over 9 seconds. Other times all the files will load in <10ms. Note that this testing was conducted with Chrome's cache disabled for timing testing.
In general I'm a unix guy and I suspect that the answer to my woes is in using NGINX, which I personal feel is likely better suited to this task, but I believe that to be a personal bias and wanted to reach out to see if there were other possibilities that I was missing. Most places addressing performance issues with IIS seem to center around ASP.NET applications, not flat file delivery. Then again, maybe that's our problem heh.