On Tue, Dec 04, 2012 at 02:19:30PM -0500, S Ahmed wrote:
> Hi,
> 
> So 500 Mbits is 1/2 usage of a 1 Gbps port (haproxy and the back-end
> servers will have 1 Gbps connections).

No, the traffic goes in opposite directions and the link is full duplex,
so you can effectively have 1 Gbps in and 1 Gbps out at the same time.

> How does latency change things? e.g. what if it takes 90% clients 1 second
> to send the 20K file, while some may take 1-3 seconds.

it's easy, you said you were counting on 1500 req/s :

   - 90% of 1500 req/s = 1350 req/s
   - 10% of 1500 req/s =  150 req/s

1350 req/s are present for one second => 1350 concurrent requests.
150 req/s are present for 3 seconds => 450 concurrent requests.
=> you have a total of 1800 concurrent requests (with one connection
   each, it's 1800 concurrent connections).

What we can say with such numbers :
  - 1500 connections/s is light, even if conntrack is loaded and correctly
    tuned, you won't notice (we're doing twice this on a 500 Mbps Geode
    running on 1 watt).

  - 1800 concurrent connections is light too, multiply that by 16 kB, it's
    30MB of RAM for the kernel-side sockets, and twice that at most for
    haproxy, so less than 100 MB of RAM.

  - 250 Mbps in both directions should not be an issue either, even my
    pc-card realtek NIC does it on my 8-years old pentium-M.

At only 1800 concurrent connections, the latency will probably be mostly
related to the NIC's interrupt rate. But we're speaking about hundreds of
microseconds here.

If you're concerned about latency, use a correct NIC, don't run any other
software on the machine, and obviously don't run this in a VM !

Hoping this helps,
Willy


Reply via email to