I recently setup a 2012 server core with hyper-v. I then installed server core 2008 R2 as a client. Installed IIS and started hosting an internal website. I started running throughput tests and found the web server could not handle as much traffic as expected. The VM was configured with dynamic memory at a max of 6 GB (way more than this simple page would ever need).
After a lot of reading it appears that IIS calculates its maximum connections based on the amount of available ram at start up. So I changed the start up ram in hyper-v to 6 GB (the maximum) and now the throughput tests are what I would have expected. Even though the Assigned memory is only 668 MB.
My question, Does IIS need its maximum ram at start up to make that calculation? if I did a start up memory of 1 GB would IIS ever try to use anything above and beyond that? If I had five or six web servers and had to assign maximum memory (which might exceed total available memory) to each would it have problems on a restart (starting all machines at once)? Basically, Do I need to set the maximum memory as the starting memory?