3

I asked this question, and a bit disappointed that NLB was not a widely-used solution.

I want to ask about widely-used solutions in the world now. Can you give me a list and a brief introduction for each? Cause of limitation of my thesis resource, I need to focus on software-only, Windows-based solution (both database level and system level are welcome).

Vimvq1987
  • 475
  • 7
  • 18
  • Do you consider poor mans round-robin DNS to be a windows solution? – Nick Kavadias Mar 22 '10 at 12:50
  • can you give me a link? I've never heard about that yet. :) – Vimvq1987 Mar 22 '10 at 12:54
  • 1
    http://en.wikipedia.org/wiki/Round_robin_DNS – Nick Kavadias Mar 22 '10 at 12:57
  • 2
    TOTALLY bad solution. Round Robin DNS distributes requests in a round robin fashion - regardless wheether the host is operational and definitly ignoring load balancing issues. Totally not what is being asked for. – TomTom Mar 22 '10 at 13:01
  • 1
    its LB, not HA .. so I'd say it counts – Nick Kavadias Mar 22 '10 at 13:04
  • 2 IB, one dead and the "load balancer" tells every second customer to go there? Dump idea. A smart load balancer BALANCES load, which includes checking that the endpoint respond withint parameters. – TomTom Mar 22 '10 at 13:17
  • I actually believe that most web browsers would try all responses to a round robin until it works. round robin doesn't only return one record, it returns all records for the lookup, just in different orders. Question doesn't state what services that are supposed to be load balanced. – jishi Mar 11 '11 at 16:36

3 Answers3

3

I've used Linux VS as load balancer for a 20 GB/day mail system and it worked just fantastic. It will scale for a lot of solutions you may encounter.

Konrads
  • 860
  • 2
  • 20
  • 38
3

An number of free and open source load balancers/web proxies can be made to run on Windows, but configuration is a bit of of pain. I have tried nginx, lighttpd, and goold old Apache for various load balancing setups.

That said Windows NLB is fine, you just need a lot of custom scripting to handle failure scenarios properly. Personally, we use nginx running on Linux VMs in front of our Windows machines, because like most other open source tools, nginx works much better on Linux than Windows.

Pound, HAproxy, and LVS are also used extensively in the open source world.

rmalayter
  • 3,744
  • 19
  • 27
  • +1 for a good mix of technologies, right tool, for the right job. – The Unix Janitor Mar 22 '10 at 13:21
  • Is there a chance for me to install LVS as an "intermediate layer"? I mean, some servers run LVS for load balancing, and other servers run Windows for web server? - Sorry if it was a noob question, I have no idea about LVS yet. :p – Vimvq1987 Mar 22 '10 at 16:19
  • Yes. LVS would be running on a dedicated server. – Warner Mar 22 '10 at 17:32
  • You would typically dedicate a (smallish) box or boxes even a VM as your load balancer. On modern hardware, even a single-core system can handle tens of thousands of requests per second with a layer-7 web proxy. – rmalayter Mar 22 '10 at 21:51
  • One other thing... nginx on Windows works pretty well, but it will not scale like the *nix versions. 1 worker process and 1024 max connections are all that you can get. Igor (the author) is considering adding support for IO completion ports and thread-based workers to match the capabilities of subsystems like epoll. – rmalayter Mar 22 '10 at 21:55
0

You will not be lucky with those. As I already said, most load balancing widely used is NOT software.

The main reason for this is the following:

  • People doing large website use professional tools. This is particularly true on the hardware level. Not that I like Cisco a lot... but they are there.
  • There is good hardware doing load balancing OUTSIDE of your server.

You can check http://en.wikipedia.org/wiki/Load_balancing_%28computing%29 for a list of providers.

That, sadly, leaves software solutions out of the window. Mostly because standard hardware has problems handling the network traffic to start with (which is why routers / switches of high power are not built on stock parts). A software solution is simply not as scalable as hardware. And as most people use hardware.... that is it. Look at the bandwidth of higher end solutions from Extreme Networks or Cisco and you may get an idea what I am talking about.

So, basically, if your thesis is limited on widely used software based load balancers, this is the same as limiting it it on widely used cars running on kerosene. They simply do not exist.

TomTom
  • 50,857
  • 7
  • 52
  • 134
  • :(. I think that I'll stick with NLB – Vimvq1987 Mar 22 '10 at 12:44
  • Actually it is a decent solution, free and integrated into the OS (which makes maintenance better - one less product to watch for patches). I like using it. But i also know I am pretty much alone. – TomTom Mar 22 '10 at 12:52
  • 2
    I use LVS on commodity hardware serving over 63 million Web site hits per month, which does not suffer any performance issues. It is far from a bottleneck. Foundry and load balancing hardware is expensive. Don't be so quick to discount OSS, especially when you have limited experience with it. – Warner Mar 22 '10 at 16:03
  • 63 million hits per month. Impressive. Some math: 210k hits per day, 87,5k hits per hour, 24,3 hits per second. Hm. HITS - that includes likely a lot of static content. What the heck do you need a load balancer for that? Or: not a significant load, sorry. One server. Maybe two. Not impressive. Even triple (to assume peaks). – TomTom Mar 22 '10 at 18:04
  • 1
    THe largest we b properties use software load balancing. Google, Facebook, Twitter, etc. all use open source software running on commodity hardware. F5 or Cisco boxes that cost $50K are often outperformed by a modern Xeon running Pound or Nginx, and the software-based solutions can actually do far more (not limited by ASIC capabilities) and are easier to scale out. – rmalayter Apr 12 '10 at 02:18