What Hardware Part 3 : Single Machine Install Seperate SQL

In the previous article we discussed the single machine setup and how fault tolerant a setup like that would be. This article will expand on the single machine install and discuss the advantages of introducing additional machines to the setup.

Having everything on one machine is OK if your concurrency is low, but if its high you will very quickly begin to see instability issues. The first thing that you can do lessen them is to purchase another machine and install the SQL database system on it.

SQL is a great system to use to store information , but there are some things you should know about it. The first is the way it writes its data, this was described in the previous example , but we have added it here again.

Now if you imagine the a record player with the record spinning around and around with the needle starting at the outside and working its way into the middle, this is exactly what the hard disk head is doing when it is writing a “.ldf” file to the disk. If you now imagine the needle of the record player jumping around the record going in and out randomly , then this is like the disk head when it is writing a “.mdf” file.  So having these two process on separate disks is going to be faster than having it happen on the same disk.

The second item to note is memory. When a connection to a data base is made sql will reserve some memory for that connection, then when the next connection is made , more memory is reserved. This basically goes on until you do something about it , so in principal the memory that SQL is using will just get bigger and bigger until it runs out. You might think that this is not a good thing, but in actual fact it is , the reason this happens is for speed. SQL tries to think ahead and in simple terms it says , I have a connection made , so I will reserve some memory for it to use , and I will not release that memory because I might be used again by the same connection.  So what do we take away from this, SQL is a memory hungry app and the more memory we can give it the better.

So we have two machines one IIS and one SQL, this is what it would look like.

Seperate SQL

Whilst we have two machines , this is still classed as a single machine install its just the next step up.

How fault tolerant is a Single Machine Setup?
This setup is better than a one machine install because memory hungry SQL has been moved onto a separate machine, but still if something goes wrong on either of the machines, your system will not work.

What Hardware do I Required for this Setup?
If you have decided that this setup is the way to go for you them we would recommend at least the following.

IIS Machine :

  •  4 gig of memory ( 3 session engines ).
  •  dual core CPU.
  •  1 80 gig hard disk for the Operating system.
  •  1 200 gig hard disk for the data files.
  •  Raid if possible.

SQL Machine :

  •  4 gig of memory.
  • dual core CPU.
  • 1 80 gig hard disk for the Operating system.
  • 1 200 gig hard disk for the MDF data files.
  • 1 200 gig hard disk for the LDF log files.
  • Raid if possible.

Network :

Now that we have two machines in our setup we should probably talk a little about the network that could be used to connect the two machines and expose the setup to the internet. Normally the SQL would not be exposed to the internet. It would sit behind a firewall so that only allowed traffic can get to it. The IIS machine would talk to the SQL machine via tcpip on the standard SQL port 1433. These two machines could then sit in the normal company domain, but normally they would sit in something called a DMZ ( demilitarized zone ) which is like a network all on its own where only certain things can happen.

 So there you have it , we have made our setup a little more tolerant, but we still have a bit to do to make a system that knows how to handle itself in a time of crisis. In our next article we will begin to expand on this setup and see what the next logical topology would be and talk about the pros and cons of it.

Leave a Comment

%d bloggers like this: