Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

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 ?

share|improve this question
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 at 16:44
    
Ram ranges are between 4-12 GB. DB's are ~15GB. –  AVP Mar 19 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 at 17:34

2 Answers 2

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?

share|improve this answer

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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