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