Solved

Load Balancing Strategies

Posted on 2009-04-14
15
374 Views
Last Modified: 2013-12-20
OK, let's say I just developed a new websites that will generate hits comparable to that of craigslist.com.  How do I manage to keep up with all the incoming hits?

Basically, I just want an idea of what my options are and to be directed to resources where I can further study them.  I would also be interested to know the answer to this question as it relates specifically to a SQL Server database as well.

Thanks!
0
Comment
Question by:brandonvmoore
  • 4
  • 3
  • 3
  • +1
15 Comments
 
LVL 11

Accepted Solution

by:
anilallewar earned 250 total points
ID: 24135930
You could follow a typical architecture as below

Load balancer(This is the IP that the DNS would map to) --> Web server(e.g. IIS) cluster --> Application server(e.g. WAS) cluster.

All your static content (images/css etc) will be serviced by the web server while the dynamic content(servlets/JSP if using J2EE) will be serviced by the applilcation server. There are plugins available that direct traffic from web server to app server.
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24136016
So in this scenario, does the plugin determine which app server is being the least utilized?  And can you point me to any resources that could give me more info about this and/or other implementations?
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24174305
Guess there's just not too many people who know much about this around here...
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 38

Expert Comment

by:Jim P.
ID: 24181600
In truth, there is really no such thing as a load balanced SQL Server. Once an instance opens a SQL DB, that is the only one that will have it open.

There are some front end solutions that cross-replicate and simulate a SQL load balance. You are going to pay for them though.

Your best bet is to tune the database(s) and instances, and then work from there.
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24190339
OK, I said I would 'also' like to know anything about load balancing that relates to SQL Server.  I don't know if you reserved any comments because you thought I wanted only to know about that, but if so I would like to hear anything you have to say about load balancing options and where I could further study them.

As it does relate to SQL Server though:  I realize a single connection can't be split between multiple engines, but do you think a site like craigslist is running their millions of users off of a single connection?  I don't know anything about how they handle this, but I would sure think they'd have multiple db servers that stay synchronized.  Unless SQL Server (or whatever db product) has a way to utilize multiple servers on a single connection, I would say they have multiple connections, which would need some kind of loading balancing in order to be effecient, right?
0
 
LVL 38

Assisted Solution

by:Jim P.
Jim P. earned 125 total points
ID: 24190539
>> I realize a single connection can't be split between multiple engines,

There are multiple connections to the SQL Server instance and database(s), but that instance is the only one that can control that set of databases.

>> but do you think a site like craigslist is running their millions of
>> users off of a single connection?

Oracle has a truly clustered DB setup available. I think DB2 has one as well. I believe EE is still running off a single Oracle instance.

Also, I figure craigslist has multiple databases per region/city.
0
 
LVL 11

Expert Comment

by:anilallewar
ID: 24222526
Please check out the Websphere Application server load balancing redbook. It discusses most of the load balancing strategies using WAS.

http://www.redbooks.ibm.com/abstracts/sg246392.html 
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24222576
OK, so it looks to me like I might have multiple database servers that are synchronized and have a connection open to each of them.  The load balancing would be implemented by looking at which database is being the least utilized and using the connection I have open to it.

Furthermore, I could have more than one application server so each one would have its own connection to each of my database servers.

Then in front of that would be the web server and it would distribute incoming requests to the least utilized application server.

I really don't know much about what I'm talking about right now, but from what I gather this seems to be how it would be architectured.  Does this sound like the way it would/could be done or can you give me some better direction?
0
 
LVL 11

Assisted Solution

by:anilallewar
anilallewar earned 250 total points
ID: 24223308
On the database side you can have multiple database servers only if they are going to service different mirror sites. If you are going to have only 1 site it makes sense to have a clustered DB environment with only 1 active database. The 2nd database can be used for fail-over and can be synced periodically with the active server using replication. The database server can handle a large number of requests simultenously and if you use connection pool on the app server side, you can control the number of DB connections to a large extent.

Like I mentioned earlier a typical load balanced application follows a tunnel structure wherein each component at the start of the tunnel would accept more connection than the next level.

Load balancer(This is the IP that the DNS would map to) --> Web server(e.g. IIS) cluster --> Application server(e.g. WAS) cluster. -> Each application server has fixed number of connections to DB managed through connection pool

All your static content (images/css etc) will be serviced by the web server while the dynamic content(servlets/JSP if using J2EE) will be serviced by the applilcation server. There are plugins available that direct traffic from web server to app server.

Suppose that the Load balancer can service 5000 request; it would direct the requests to 2 Web servers that can service 2500 request. Each of the web servers will in turn direct the requests to a cluster of 2 app servers that can manage 1250 requests each. The app server holds a connection pool of 500 DB connections each.

The assumption is that the number of concurrent requests would reduce down the funnel because of the intermediate processing time involved.
0
 
LVL 7

Assisted Solution

by:sysdba
sysdba earned 125 total points
ID: 25546170
for sql server you can use Federated database system one user front end, 5 databases behind
although correctly designed databases can serve thousands of request per second. or you can design one database for one major functionality and design some king of interconnections.
0
 
LVL 38

Expert Comment

by:Jim P.
ID: 25964715
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question