Finally Upgrading.

Well I finally got a second webserver and put it into production on the weekend. Along with a serveriron load balancer. The main reason for the upgrade is that i’m fast approaching 64,000 concurrent users and you can only have 64k users per IP. But even when using a load balancer its tricky to set up without running into problems.

The SI supports a maximum of 64,000 simultaneous connections on each source IP address. This maximum value is based on the architectural limits of IP itself. As a result, if you add only one source IP address, the SI can support up to a maximum of 64,000 simultaneous connections to the real servers. If you configure 64 source IP addresses, the SI can support more simultaneous connections.

I could have just assigned a second IP and added round robin DNS, but this way I’ve got more redundancy and can just swap in more web servers. Also ServerIrons allow some really cool stuff to happen like load balance passed on Cookies, session data, ip data you can even block bots.

Here is another Video panel with startup founders..

http://blog.guykawasaki.com/2007/06/no-plan-no-capi.html

15 Responses to “Finally Upgrading.”

  1. Bill Broadbent Says:

    With all these tough problems you have to deal with Markus, you might be back at that 2 hour per day work load. 😉

    You’re not only Guy’s hero my friend.

  2. Mayo Says:

    Markus, you really made come true the revenge of the Nerds…

    i can only wish that even more of us join that club… ;D

  3. A humbled one Says:

    I’ve done a bit of googling this time. Precisely, the number of simultaneous TCP connections between two given IP addresses has a theoretical limit at 64000.

  4. ZD Says:

    Did you consider using using NLB (Network Load Balancing) that comes with Server 2003?

    It essentially does what that SI does but doesnt require any additional hardware! Also, it doesnt add a single point of failure in your network (if that SI goes down, so does both of your web servers)

    Just a thought…

  5. Markus Says:

    NLB is useless for persisting sessions. SI does sticky sessions.

    64,000 limit also applies when using NAT, ie having a firewall that moves data between a public and private network.

  6. ZD Says:

    I agree that NLB in of itself wont persist sessions, however, you can store your session state out of process in a medium that is accessible to all servers. This way, all your web servers will be able to access the common storage for the session so it doesnt matter which front-end web server the user is accessing.

    I found this approach to be quite cheap (money wise) and very reliable when scaling apps out to many concurrent users. It also removes a single point of failure because if your SI box goes down, so does your entire site.

    I usually do things on a shoe-string budget too. I like how you’re getting alot of performance out of a little hardware? Is that because you write out the database stuff to HTML? I do that same technique too.

    How does the SI interact with .NET to keep the session?

  7. Markus Says:

    Its hardware based, IP’s are mapped to servers. You can’t do large scale Load balancing with windows, and SI’s can be failed over.

  8. ZD Says:

    Sure it will scale. You would generally put 8-12 NLB servers in a farm, and then have an unlimited number of farms. You can DNS round-robin between the farms. I’ve used this to scale to over 70 front end web servers supporting over 300,000 concurrent users.

  9. Markus Says:

    Sure it can be done, but the cost of storing session data and fetching it again is insane, i’d rather just use hardware load balancing and map users to specific servers. And if one of the servers failed they are redirected else where and forced to log in.
    At end end of the day, i figured $13k To do it in hardware is a lot cheaper then using NLB and having to worry about storing hundreds of thousands of conncurrent connections.
    From what i’ve been reading pretty much all the major sites use Server Irons, Including microsoft. TCP connection pooling, hardware detection of automated bots, cookies etc etc etc. You can basically program the thing like you would a web server. Its very powerful and does a lot more then just load balancing.

  10. ZD Says:

    NLB can work in that fashion too. There is a ‘server affinity’ option that will always map a user to a specific server. Using this you dont have to use an external medium to store session state and so if a specific server fails then the user just looses their session and will have to login again.

    Anyways – I love this stuff. If you ever want help developing / running your site please let me know, I’m in Toronto and would love to help out (maybe you want to focus more on growing the business and have someone else look after the tech stuff)

  11. Dilip Says:

    Markus,
    Could you please contact me by email, as I have a complain against your website plentyoffish.com being misused.

  12. crestosssa Says:

    Hey

    I was surfing the web and i saw this site, pretty cool.
    Currently im running and adult site:Reachton
    k, just want to say hi🙂
    Can i link you from my site? im looking for quality content like yours. If no let me know if i can add u in exchange for a montly fee or something.

  13. Music-Band Says:

    Hey

    I was surfing the web and i saw this site, pretty cool.
    Currently im running and adult site:Reachton
    k, just want to say hi🙂
    Can i link you from my site? im looking for quality content like yours. If no let me know if i can add u in exchange for a montly fee or something.

  14. Watch Year One Says:

    Hey, cool tips. I’ll buy a bottle of beer to the man from that chat who told me to visit your site🙂
    p.s. Year One is already on the Internet and you can watch it for free.

  15. Eargle Says:

    happy day :))

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: