0

There are similar questions out there on this topic, such as When can I host IIS and SQL Server on the same machine? but I'm looking for more.

I'm looking for the most optimal way to setup IIS and SQL server on the same machine.

So far, I've got the following:

  1. Use CPU affinity masks for both SQL and IIS/ASP to isolate the two on separate cores.
  2. Configure SQL to reserve less RAM so that it leaves free memory for IIS/ASP.
  3. Recycle app pool aggressively.
  4. SQL database and log files on different disks.

So my questions are:

  1. What ratio should CPU's be masked? Are we talking 1 cpu for web, and 3 for SQL, or split down the middle?
  2. Same as above, what ratio? If I have 4GB of ram, Should I give SQL 3GB and IIS 1, or 2GB each?
  3. I have three Hard Drives. How should I split everything up? I'm assuming 1st drive: OS & IIS, 2nd drive: SQL Installation & SQL Logs, 3rd drive: SQL Data
Community
  • 1
  • 1
Levitikon
  • 7,749
  • 9
  • 56
  • 74

1 Answers1

1

This is going to be highly application dependent.

The only thing from the first 4 suggestions I would use is number 4. Install SQL on the system drive and put the databases on D:, the log files on E:.

I wouldn't do any of the other things, especially aggressively recycling the application pool. You'll just eat up CPU time unnecessarily. Unless the application is leaking memory you gain nothing from aggressively recycling the app pool.

You should monitor your application and see what makes sense.

Source: I am head of Windows infrastructure for a web hosting company and have designed and implemented some of the biggest Microsoft based web infrastructures in the world.

Nathan Rice
  • 3,091
  • 1
  • 20
  • 30
  • I agree entirely. Recycling the app pool frequently seems quite counter-productive. If it's needed, something's wrong with the application. #4 is *always* a good thing, and the other two are not necessarily givens. – Andrew Barber Apr 02 '12 at 23:08