0

In my use case, we have production servers that host both IIS & SQL on the same machine, not ideal but no flexibility to change that.

Basically a single machine is both a DB and an Application server, hosting multiple DBs and multiple instances of ASP.NET sites.

The last time I checked MS' best practice said ~75% RAM allocation to SQL, however this config doesn't leave much room for other processes to run.

Does any one know what Microsoft recommends for servers that host both SQL & IIS together ?

3
  • 2
    How much data do you have, and how much RAM is there? The answer to your question is dependent on many factors, I'm not sure we can give you a good answer except to make an educated guess, measure the results, adjust accordingly, repeat.
    – Jon Seigel
    Mar 19, 2014 at 16:44
  • Ram ranges are between 4-12 GB. DB's are ~15GB.
    – AVP
    Mar 19, 2014 at 16:53
  • If the DB is 15GB, then most of the time it should use all the memory on the machine (let SQL Server manage). I think the official recommendation is 92% from MS (but that doesn't make sense on a 256GB machine, which would leave 20GB unused). When SQL Server is running alone, I would dedicate all the memory except 1 to 1.5GB RAM to support the OS. You'll have to profile your I/O in SQL Server to see how much it's hitting the disk and how much is cached.
    – efesar
    Mar 19, 2014 at 17:34

2 Answers 2

1

When there's nothing else on the machine besides SQL you need to leave at least 2-4 Gigs of RAM for the OS. When running a bunch of different IIS sites you'll need at least 4 Gigs for the OS and IIS. As some of your machines have only 4 Gigs that's a bit of a problem. Can you add some RAM to these servers to get them up to 16 or 24 Gigs?

I'm assuming x64 here?

1

I've seen plenty of single-server solutions with IIS and SQL, some with 4 GB of memory. They work for low-load situations.

I wouldn't want to run a busy site unless there was a lot of memory to work with. If you have enough memory for the load, the lower latency of communicating over shared memory, instead of the network stack, could be a net win.

If you already have this setup, and performance is good, then why change? (Assuming you're not expecting a bigger traffic load).

SQL Server will give up memory if under memory pressure from other processes. It won't lead to good performance if it has to do that, but it won't bring everything to a halt either.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.