Skip to main content
BlogLinodeNodeBalancer Concurrent Connections

NodeBalancer Concurrent Connections

10000

10000When we were figuring out our NodeBalancer pricing model, we decided to make it simple (a philosophy we apply to most decisions) and to not nickel and dime you. And so we announced the NodeBalancer service with a fixed 5,000 concurrent connections limit and a fixed price of $19.95/month.

Today we are pleased to announce NodeBalancer concurrent connections have been increased to 10,000, with no change in price.  All existing NodeBalancers have already been seamlessly upgraded, and all new NodeBalacers will get the new limit.

NodeBalancer pricing:

NodeBalancer Instance $19.95 / mo ($0.027 / hour)
10,000 Concurrent Connections No charge
Transfer Out Deducted from Transfer Pool then $0.10 / GB
Transfer In No charge

If you’d like to know more about how NodeBalancers can help you:

Enjoy!

-Chris


Comments (17)

  1. Author Photo

    Its over 9000!

    seriously though guys. This is great!

  2. Author Photo

    You guys really know how to set the bar! Thx!

  3. Author Photo

    The one thing stopping me from using the awesome nodebalancers is that I can’t get the visitors IP if using https. Since my web app does geoip it NEEDS this info. Any chance at fixing this soon?

  4. Author Photo
  5. Christopher Aker

    @Brian – Putting HTTPS termination at the NodeBalancer level would mean the NB would become a bottleneck as it is currently designed. Better to distribute HTTPS load across the backends. If you need the IP of a visitor, do it once either by an HTTP request or to a request to a non-loadbalanced HTTPS server of yours, and then associate it with that user’s session. Hope that helps.

  6. Author Photo

    Would it be possible to create a “test” nodebalancer with a limit of eg. 5 connections, that is free? I would like to test my high availability setup and then migrate to the paid nodebalancer when my application can go live.

  7. Christopher Aker

    @Tom – sorry, no. It would still occupy resources (and a precious IPv4 address). However we prorate everything to the day – so adding and then removing a NB would put a credit for the unused days back onto your account. A NB for three days would end up costing you about two bucks.

  8. Author Photo

    Guys, I am using node ballancer for XMPP servers – it means, connected user has always pernament live IP connection, but with very low traffict. Because of this, 10 000 is low number for me.

    What happens, if I go over 10 000? Nobody else will connect? Or can I pay for more connections? Can you scale up to say 100 000?

  9. Christopher Aker

    @Jindra you would need to use multiple NodeBalancers to go beyond 10,000 concurrent connections.

  10. Author Photo
  11. Author Photo

    @caker – are nodebalancers ok with websockets?

  12. Author Photo

    Also to chime in about persistent connections, would you happen to know if NodeBalancers will work with Server Sent Events (http://en.wikipedia.org/wiki/Server-sent_events).

    I would guess that it would be similar to XMPP or WebSockets.

    Either way, great news about upping the limit!

  13. Author Photo

    This is awesome, was having massive problems with the 5000 concurrent limit.

    I’d love to have a ‘premium’ Nodebalancer option though with say 50,000 concurrent support rather than having to use the DNS round robin hack I’m using now.

    Keep up the great work!

  14. Author Photo

    What does “concurrent connection” actually mean?

    If the definition is at HTTP level, that’s fine. A connection is immediately terminated with “Connection: close” and you -1 from the pool.

    But if it’s at TCP level, it’s problematic for us. Because there’s always hanging TIME_WAIT at the end of TCP lifecycle, and becomes the majority of “connections”. For web apps that handle massive amount of short-lived requests, TIME_WAIT would be dominant.

    Or if it’s IP / netfilter level, it’s problematic, too. ip_conntrack would saturate very fast.

    I think NB is meant to be a load balancer and we don’t want it to be THE bottleneck, obviously. Would like to know those basics before start testing.

  15. Author Photo

    Simply put,

    Assuming TIME_WAIT is set at 60 seconds (which is sensible and is the default in many systems), you can handle only 10,000 requests per minute (or less), even if your servers are very fast and respond to each request in close to zero milliseconds, and seemingly there’s no “concurrent” connections at the HTTP level.

    It is somewhat counterintuitive and confusing way to advertise the service, IMO.

    You could easily check how many dead-but-counted-as-concurrent connections on your system, by running the following command on your web server.

    netstat -an | grep TIME_WAIT | wc -l

    and compare it with the raw output of “netstat -an”. See how TIME_WAIT could be dominant in your resource usage.

    Considering that a single Linode 512 instance with Nginx could easily handle 100,000+ concurrent connections (which means Linode is very FAST!), probably you could do better and offer a higher end of lineup for NodeBalancer. BTW, we need at least 200,000.

  16. Christopher Aker

    A TCP session in TIME_WAIT is not counted against the NodeBalancer connection pool.

    That being said, if you need 200,000 concurrent ESTABLISHED TCP connections, you would need 20 NodeBalancers.

  17. Author Photo

    So if I understand this correctly if you need to go over 10,000 connection you would need multiple nodeBalancers with round robin dns?

Leave a Reply

Your email address will not be published. Required fields are marked *