kernel-ark/net/netfilter/ipvs
Michal Kubecek be2cef4990 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>
2016-07-07 20:30:52 +02:00
..
ip_vs_app.c netfilter: ipvs: avoid unused variable warnings 2016-02-18 09:17:58 +09:00
ip_vs_conn.c ipvs: make drop_entry protection effective for SIP-pe 2016-05-06 16:26:23 +09:00
ip_vs_core.c ipvs: make drop_entry protection effective for SIP-pe 2016-05-06 16:26:23 +09:00
ip_vs_ctl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2016-05-09 15:02:58 -04:00
ip_vs_dh.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_est.c ipvs: Pass ipvs not net to ip_vs_estimator_net_init and ip_vs_estimator_cleanup 2015-09-24 09:34:39 +09:00
ip_vs_fo.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_ftp.c ipvs: Remove net argument from ip_vs_tcp_conn_listen 2015-09-24 09:34:43 +09:00
ip_vs_lblc.c ipvs: Store ipvs not net in struct ip_vs_service 2015-09-24 09:34:33 +09:00
ip_vs_lblcr.c ipvs: Store ipvs not net in struct ip_vs_service 2015-09-24 09:34:33 +09:00
ip_vs_lc.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_nfct.c ipvs: don't alter conntrack in OPS mode 2016-04-20 12:34:17 +10:00
ip_vs_nq.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_ovf.c ipvs: Add ovf scheduler 2015-08-21 09:08:39 -07:00
ip_vs_pe_sip.c ipvs: handle connections started by real-servers 2016-04-20 12:34:17 +10:00
ip_vs_pe.c netfilter: Deletion of unnecessary checks before two function calls 2014-11-20 13:08:43 +01:00
ip_vs_proto_ah_esp.c ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule 2015-09-24 09:34:41 +09:00
ip_vs_proto_sctp.c sctp: Rename NETIF_F_SCTP_CSUM to NETIF_F_SCTP_CRC 2015-12-15 16:49:58 -05:00
ip_vs_proto_tcp.c ipvs: count pre-established TCP states as active 2016-07-07 20:30:52 +02:00
ip_vs_proto_udp.c ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule 2015-09-24 09:34:41 +09:00
ip_vs_proto.c ipvs: Pass ipvs not net to ip_vs_protocol_net_(init|cleanup) 2015-09-24 09:34:43 +09:00
ip_vs_rr.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_sched.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next 2015-08-04 23:57:45 -07:00
ip_vs_sed.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_sh.c ipvs: sh: support scheduling icmp/inverse packets consistently 2015-09-01 10:33:52 +09:00
ip_vs_sync.c ipvs: Pass ipvs not net to ip_vs_sync_net_cleanup 2015-09-24 09:34:38 +09:00
ip_vs_wlc.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_wrr.c ipvs: use correct address family in scheduler logs 2014-09-18 08:59:23 +09:00
ip_vs_xmit.c net: define gso types for IPx over IPv4 and IPv6 2016-05-20 18:03:15 -04:00
Kconfig ipvs: Add ovf scheduler 2015-08-21 09:08:39 -07:00
Makefile ipvs: Add ovf scheduler 2015-08-21 09:08:39 -07:00