1

I'm trying to figure out what kind of server setup I will need to support:

  • 1K http post requests per second
  • each post will contain a xml file between 5-50K (average of 25 kilobytes)

Even if I get a 100 Mb/s connection with my dedicated box (they usually give 10 Mb/s but you can upgrade), from my calculations that is about 12K kb/s which means about 480 25kb files per second.

So this means I need around 3 servers then, each with 100 Mb/s connection.

Would a single server running HAProxy be able to redirect the requests to other servers or does this mean I need to get something else that can handle more than 100 Mb/s to proxy things out to the other servers?

If my math is off I'd appreciate any corrections you may have.

Blankman
  • 2,891
  • 10
  • 39
  • 68

1 Answers1

2

First, I'm going to assume you have sized your servers correctly since you are only asking about bandwidth.

Secondly, you are going to want to design for the worst case scenario. which would be all 1,000 requests posting a 50K file.

Second, lets normalize everything into bits per second instead of bytes per second since that is what bandwidth is measured in.

So that gives us (50 * 8) * 1000 = 400,000. Translated into Mbps that would be 400. Now you need to add the ~20% overhead that tcp and ethernet add, and you get a worse case scenario of 480 mbps.

Your HAProxy instance would need to be gigabit to handle all that traffic. And you would need at least 4 servers behind that running at 100mbps.

Now the caveate, these speeds are your connection speeds to the internet, You need to ask your provider what that inter-server speeds are. Hopefully if it is a good provider it's gigbit inter connects between servers, then you just have to worry about your internet usage.

Zypher
  • 37,405
  • 5
  • 53
  • 95
  • Using the worst-case scenario again, at 50KB per file you can expect at least 1 - 2 seconds per upload but depending on your users it may be up to 10 seconds per upload. At 2 seconds per upload and 1000 uploads per second you will need to handle a minimum of 2000 simultaneous connections. At 10 seconds per upload it's 10,000 connections. You will need to adjust HAProxy's `maxconn` value and (if you're using it) Apache's MaxChildren and ServerLimit directives appropriately. – Ladadadada Nov 26 '11 at 11:16
  • Is it possible to get faster internal connections instead of 100mbps? I am not doing any fancy processing of the file, could I potentially use less servers behind haproxy or is their some sort of connection limitation? – Blankman Nov 26 '11 at 12:21
  • @Blankman you'd have to ask the hosting provider about their internal connectivity options. – Zypher Nov 27 '11 at 02:05
  • @Zypher I will, it is just you mentioned I will need 4 servers so I thought there was some kind of hard limiation, thanks. – codecompleting Nov 30 '11 at 16:50