]> git.baikalelectronics.ru Git - kernel.git/commit
ipvs: count pre-established TCP states as active
authorMichal Kubecek <mkubecek@suse.cz>
Fri, 3 Jun 2016 15:56:50 +0000 (17:56 +0200)
committerSimon Horman <horms@verge.net.au>
Thu, 7 Jul 2016 18:30:52 +0000 (20:30 +0200)
commitb14c896b31a83f89525f2db3f3f25a9a7299ac9b
treeadfaa04559e95b4810554d5c7ea7f615970b0c48
parent77a689490b10618fa53588a2fdd5a8b605a33082
ipvs: count pre-established TCP states as active

Some users observed that "least connection" distribution algorithm doesn't
handle well bursts of TCP connections from reconnecting clients after
a node or network failure.

This is because the algorithm counts active connection as worth 256
inactive ones where for TCP, "active" only means TCP connections in
ESTABLISHED state. In case of a connection burst, new connections are
handled before previous ones have finished the three way handshaking so
that all are still counted as "inactive", i.e. cheap ones. The become
"active" quickly but at that time, all of them are already assigned to one
real server (or few), resulting in highly unbalanced distribution.

Address this by counting the "pre-established" states as "active".

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
net/netfilter/ipvs/ip_vs_proto_tcp.c