Separate the webserver and database server

  • Hello all,

    I am currently facing a performance issue, and most probably that is because of the Web server and SQL server in the same machine and same disk.

    I did some research and most of the articles suggested to not to keep both things in the same machine. I am planning to separate the SQL server from that machine to another machine.

    I am a newbie in this and would require the steps to be performed and points that I need to take care of, kindly I would appreciate if anyone can help me in this,

    Also is separating web and sql server make great difference in performance?

    Thank you in advance.

  • It's not my area, but I do know that it is very dependent on what is running on your Webserver, especially if it connects to your SQL Server. Also, one of the big issues that I recall with these tends to be security/authorization issues as it's a lot easier for the Web Apps to be authorized for their access to the SQL Server when they are on the same machine.

    The performance problems with them being in the same server are generally 1) contention for memory, and 2) CPU contention. Disk contention is possible also, especially if they are sharing the same disk.

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]

  • Thank you RBarryYoung for your reply,

    Yes security is an issue, also the the CPU and Memory contention are my major headaches for me because of which my website is very slow.

    I have 100%CPU usage and from which 95-99% taken by sql server both my webserver and sql server are on same disk.

    I have asp.net website, so I am not sure you know this or not. If I separate my database do i just have to change the connection string for the connectivity or is there anything else that i need to think of while separating.

    Thank you,

  • sid18in (9/28/2009)


    ...

    I have asp.net website, so I am not sure you know this or not. If I separate my database do i just have to change the connection string for the connectivity or is there anything else that i need to think of while separating.

    Well, if the connection string doesn't name the target server, then it will certainly have to have that. As to whether that's enough, well, that has a lot to do with your network security architecture, which is out of my expertise area.

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]

  • sid18in (9/28/2009)


    Thank you RBarryYoung for your reply,

    Yes security is an issue, also the the CPU and Memory contention are my major headaches for me because of which my website is very slow.

    I have 100%CPU usage and from which 95-99% taken by sql server both my webserver and sql server are on same disk.

    I have asp.net website, so I am not sure you know this or not. If I separate my database do i just have to change the connection string for the connectivity or is there anything else that i need to think of while separating.

    Thank you,

    How big is the SQL Server machine? If you are running at 100% CPU with SQL using 95-99 you might need to spend some time performance tuning your code.

    But I see your big issue is identifying all the places where the SQL server is referenced in your site. With any luck it is all in one place. When you move it you need to reference the servername.

    I have some additional thoughts:

    1. Is the web site externally facing, or is it just for internal use? That answers changes some of the security questions I have.

    2. What is your security model? Does your app login as a single user or does it pass through the domain user?

    3. Do you have an active domain or are you using machine domains?

    CEWII

  • Thank you for the replies...

    Let me give a background on the system, we have Kentico CMS system which was used to build the website, so for everytime any request is made we have a database query running....Also we have 22 website running in this system so every website has their own data, Also everything is in the same database...

    so how big is the database right now ..its approx 3.6GB .....

    This is an externally facing website...and its a single user login...

    I hope this was what u needed...

    thank you in advance...

  • sid18in (9/29/2009)


    Thank you for the replies...

    Let me give a background on the system, we have Kentico CMS system which was used to build the website, so for everytime any request is made we have a database query running....Also we have 22 website running in this system so every website has their own data, Also everything is in the same database...

    so how big is the database right now ..its approx 3.6GB .....

    This is an externally facing website...and its a single user login...

    So we have a multi-tenant app that is heavy on the DB which is about 3.6GB. Sounds a lot like DotNetNuke..

    Ok, it should be relatively easy to migrate.. You should be able to take a copy of the whole website and bring it up on the new webserver without taking the other one down.. Get it fully copied and setup and then adjust the connection string to point at the right server. It is probably possible to have both up at the same time with a little local machine DNS trickery. That way you could play with the server and make sure it works without taking the other down until you are ready.. When you are ready you change your DNS to point at the new server and probably have both up for 1-2 days for the DNS settings to trickle down.. Then you can fully turn off the old copy..

    Have you re-indexed and updated stats on your database recently? You might squeeze some additional performance out that way.

    CEWII

  • Thank you again..Elliot

    So from your reply it seems its pretty noraml for such system to have a load on DB...Also it seems u have a knowledge on such system...

    And yes Kentico is somewhat like dotnetnuke...

    Thank you for the process...explanation...but now I am keen on your take for the hardware upgrade..do you think this separation of server would have lot of difference or should I also think on making the db server of high hardware config?

    I would appreciate your view on this...

    Thank you in advance...

  • I have a fair amount of experience with DNN and yes a load on the DB is common. However, the load that you are talking about seems a bit excessive. However with the DB and the Web Server on the same box you may be hiding issues that each are having such as memory contention. Once you get the Web Server off the DB server I would be interested what the usage is. I have some additional questions that might help define the need for a hardware refresh..

    Age of the box?

    Is your SQL box 32 or 64 bit?

    How much memory total and available to SQL?

    How many CPU cores?

    Processor speed of the cores?

    What kind of disk subsystem?

    How many disks?

    RAID?

    Other databases on the box?

    Size of those databases?

    Utilization of those databases?

    Other software installed on the box?

    Is is that software essential?

    CEWII

  • You are too good,...Thank you again ..

    Yes I am hoping that separating the web and sql server should make some difference, especially that what Kentico support say's.

    OK the hardware currently I have is single machine and I have given all the answer to your questions to best of my knowledge...

    Age of the box?

    >>Its been more than a year now.

    Is your SQL box 32 or 64 bit?

    >> 32 bit box...

    How much memory total and available to SQL?

    >>4GB total in this current box...I am not sure how to find how much memory does SQL has..but I think its max memory

    How many CPU cores?

    >> Quad Core Xeon E5430

    Processor speed of the cores?

    >> 2.66Ghz

    What kind of disk subsystem?

    >>72GB 3G SAS 10K SFF HDD Disk Group 1

    How many disks?

    >> 3 disk but used 2 disk at a time..3rd one is a hot spare

    RAID?

    >>Raid 1

    Other databases on the box?

    >> one database in the box

    Size of those databases?

    >> -

    Utilization of those databases?

    >> -

    Other software installed on the box?

    >> Big software installed are MS SQL Management studio..

    Is is that software essential?

    >> I think so it is essential...

    Also the network card currently is 10MB half duplex...probably you might want to know this...

    Thank you in advance...

  • Age of the box?

    >>Its been more than a year now.

    So not an ancient box.. That is good.

    Is your SQL box 32 or 64 bit?

    >> 32 bit box...

    Thats a negative.. 64 is better, by a lot..

    How much memory total and available to SQL?

    >>4GB total in this current box...I am not sure how to find how much memory does SQL has..but I think its max memory

    You might try to double that to 8, you'll probably see an improvement. but first, do you have the /3GB switch set in the OS, if not I think SQL will be limited to 2GB. Also, it is adviseable to set the max memory on the SQL Server, otherwise you can end up with disk thrashing as the OS and SQL fight over memory and it gets paged of to virtual memory, which is REALLY bad. Depending on the OS you nmight need to save as much as 1GB for the OS, under no circumstances should there be less than 512MB left for the OS and some others here would argue the min number should be higher.. I'm on the fence on that one..

    How many CPU cores?

    >> Quad Core Xeon E5430

    Processor speed of the cores?

    >> 2.66Ghz

    4x2.66, that should be pretty good.

    What kind of disk subsystem?

    >>72GB 3G SAS 10K SFF HDD Disk Group 1

    How many disks?

    >> 3 disk but used 2 disk at a time..3rd one is a hot spare

    RAID?

    >>Raid 1

    Hardware RAID? Only 3 disks? It should be more like 5, I'm guessing you have the OS on these 2 disks as well? I'm dealing with a lot of SAN these days so this next part you need to think about.. There are a lot of different ways to do it. You might acquire 2 more disks and configure the 3 disks as a RAID 5 array and move the databases there. OR you might add 3 more disks and do a raid 10 or 0+1, either of which would perform pretty good.

    Also the network card currently is 10MB half duplex...probably you might want to know this...

    I'm hoping that was 100MB, and I'm puzzled why it would be half-duplex? If your backbone supports it you should have at least 1 GB full-duplex NIC, they are cheap enough these days. It is also possible to do some, trickery between the Web Server and the Database Server. What I mean is you could build a private network between them that only they would talk to each other on, this might be considered if your backbone infrastructure is low capacity, or over-utilized, either one equals diminished performance. Your web server should probably be dual-homed anyway to seperate the web traffic from the DB traffic, otherwise you'll have your NIC on the Web Server fighting for capacity with the backend.

    CEWII

  • Thank you Elliot,

    This is a good lead for me, All the sugestion you have given are taken into consideration and I would surely keep you updated on the performance.

    I appreciate your effort in guiding me, Thank you.

    Sid

  • You are very welcome, I lok forward to hearing how it went.

    CEWII

  • Hi Elliot,

    Its been long time since I replied you. Actually I had taken break for a month.

    By the way I had done the server upgrade, separated the Web and DB server.

    Used Web Server : 32 bit Intel Xeon, 3.2 Ghz, 4GB Ram, Raid 5

    DB Server: 64 bit, 8GB Ram, Raid 5

    It did improve performance slightly, but it seems the working of CMS and some code design is not up to the mark.

    So I went for the service from Akamai for site delivery which did the trick. It improved the most visited page and offloaded my server which in a way gave more resources for any response hitting the server.

    Just thought to give you a reply with my experience...let me know if you have any comment on it.

    Thanks,

    Sid

Viewing 14 posts - 1 through 13 (of 13 total)

You must be logged in to reply to this topic. Login to reply