Forum Discussion
Least connection loadbalancing question.
Hi,
I am testing ltm 11.5.2HF1 least connection loadbalancing method, anyways in my test I disable a pool member in a pool that is consisted of 16 members and after few seconds when all other members get connections I go and re-enable the disabled member and the test keeps running till it's time over which is about 5min, when the test is done the members don't have equal connections.
by the way CMP is disabled on the VIP.
my question: isn't the ltm supposed to send all the connections to the disabled member after re-enabling it till it becomes equal with other members and then continue rounrobin till the test is done ?
your thoughts please ?
Thanks, Sahir
Hi Sahir, This is not bug or issue. Hope you are aware of SRT(Slow Ramp Time). Whenever you enable any pool member, f5 doesn't give all new connection to that member. Slowly f5 share load to new member. By the way difference session is just 3 now, its not bad.
- nitassEmployee>when the test is done the members don't have equal connections. what connection do you mean? is it current connections (not maximum or total connections)?
- Sahir_180434Nimbostratusboth, the current connections for the disabled member is 3 connections less that all other members which reflects on the total connections beside the missed connections when the member was disabled.
- nitassEmployeei do not think total connection is right stats because least connections mode is based on open connections at the time new connection is coming but current connections should be. how much difference in current connections between pool members?
- Sahir_180434Nimbostratus3 connections less, for all the members is 23, for the member that was disabled and moved to enable state is 20
- Samir_Jha_52506Noctilucent
Hi Sahir, This is not bug or issue. Hope you are aware of SRT(Slow Ramp Time). Whenever you enable any pool member, f5 doesn't give all new connection to that member. Slowly f5 share load to new member. By the way difference session is just 3 now, its not bad.
- Sahir_180434NimbostratusHi Samir, Actually I don't know about the SRT, I will have to read more about it, but the way you explained it makes sense now. Thanks.
- nitass_89166Noctilucent
i have not yet had an idea how to test with http traffic (short-lived connection) but it seems okay with ssh. i am running 11.6.0 hf4.
configuration root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm virtual bar ltm virtual bar { cmp-enabled no destination 172.28.24.10:22 ip-protocol tcp mask 255.255.255.255 pool foo profiles { tcp { } } rules { qux } source 0.0.0.0/0 source-address-translation { type automap } vs-index 19 } root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm pool foo ltm pool foo { load-balancing-mode least-connections-member members { 200.200.200.101:22 { address 200.200.200.101 } 200.200.200.111:22 { address 200.200.200.111 } } slow-ramp-time 0 } root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm rule qux ltm rule qux { when RULE_INIT { set static::pool_name "foo" set static::members_cmd "members -list $static::pool_name" set static::pool_list [eval $static::members_cmd] unset -nocomplain static::pool_conn foreach static::pool_mbr $static::pool_list { set static::pool_conn([lindex $static::pool_mbr 0]) 0 } unset static::pool_name static::members_cmd static::pool_mbr } when LB_SELECTED { increase counter set server_ip [LB::server addr] incr static::pool_conn($server_ip) log set log_conn "client:[IP::client_addr]:[TCP::client_port] " foreach elm $static::pool_list { append log_conn "[lindex $elm 0]:$static::pool_conn([lindex $elm 0]) " } log local0. $log_conn } when CLIENT_CLOSED { decrease counter incr static::pool_conn($server_ip) -1 } /var/log/ltm [root@ve11a:Active:In Sync] config tail -f /var/log/ltm Jun 5 13:16:02 ve11a notice mcpd[8104]: 01070639:5: Pool /Common/foo member /Common/200.200.200.111:22 session status forced disabled. Jun 5 13:16:24 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59163 200.200.200.111:0 200.200.200.101:1 Jun 5 13:16:37 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59167 200.200.200.111:0 200.200.200.101:2 Jun 5 13:16:46 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59169 200.200.200.111:0 200.200.200.101:3 Jun 5 13:16:55 ve11a notice mcpd[8104]: 01070639:5: Pool /Common/foo member /Common/200.200.200.111:22 session status enabled. Jun 5 13:17:02 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59174 200.200.200.111:1 200.200.200.101:3 Jun 5 13:17:10 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59177 200.200.200.111:2 200.200.200.101:3 Jun 5 13:17:17 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59179 200.200.200.111:3 200.200.200.101:3 Jun 5 13:17:24 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59182 200.200.200.111:3 200.200.200.101:4 Jun 5 13:17:31 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59185 200.200.200.111:4 200.200.200.101:4
- Sahir_180434NimbostratusI am using Ixia server, you can create different type of tests according to your needs. Thanks
- nitassEmployee
i have not yet had an idea how to test with http traffic (short-lived connection) but it seems okay with ssh. i am running 11.6.0 hf4.
configuration root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm virtual bar ltm virtual bar { cmp-enabled no destination 172.28.24.10:22 ip-protocol tcp mask 255.255.255.255 pool foo profiles { tcp { } } rules { qux } source 0.0.0.0/0 source-address-translation { type automap } vs-index 19 } root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm pool foo ltm pool foo { load-balancing-mode least-connections-member members { 200.200.200.101:22 { address 200.200.200.101 } 200.200.200.111:22 { address 200.200.200.111 } } slow-ramp-time 0 } root@(ve11a)(cfg-sync In Sync)(Active)(/Common)(tmos) list ltm rule qux ltm rule qux { when RULE_INIT { set static::pool_name "foo" set static::members_cmd "members -list $static::pool_name" set static::pool_list [eval $static::members_cmd] unset -nocomplain static::pool_conn foreach static::pool_mbr $static::pool_list { set static::pool_conn([lindex $static::pool_mbr 0]) 0 } unset static::pool_name static::members_cmd static::pool_mbr } when LB_SELECTED { increase counter set server_ip [LB::server addr] incr static::pool_conn($server_ip) log set log_conn "client:[IP::client_addr]:[TCP::client_port] " foreach elm $static::pool_list { append log_conn "[lindex $elm 0]:$static::pool_conn([lindex $elm 0]) " } log local0. $log_conn } when CLIENT_CLOSED { decrease counter incr static::pool_conn($server_ip) -1 } /var/log/ltm [root@ve11a:Active:In Sync] config tail -f /var/log/ltm Jun 5 13:16:02 ve11a notice mcpd[8104]: 01070639:5: Pool /Common/foo member /Common/200.200.200.111:22 session status forced disabled. Jun 5 13:16:24 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59163 200.200.200.111:0 200.200.200.101:1 Jun 5 13:16:37 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59167 200.200.200.111:0 200.200.200.101:2 Jun 5 13:16:46 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59169 200.200.200.111:0 200.200.200.101:3 Jun 5 13:16:55 ve11a notice mcpd[8104]: 01070639:5: Pool /Common/foo member /Common/200.200.200.111:22 session status enabled. Jun 5 13:17:02 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59174 200.200.200.111:1 200.200.200.101:3 Jun 5 13:17:10 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59177 200.200.200.111:2 200.200.200.101:3 Jun 5 13:17:17 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59179 200.200.200.111:3 200.200.200.101:3 Jun 5 13:17:24 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59182 200.200.200.111:3 200.200.200.101:4 Jun 5 13:17:31 ve11a info tmm[30284]: Rule /Common/qux : client:192.168.206.117:59185 200.200.200.111:4 200.200.200.101:4
- Sahir_180434NimbostratusI am using Ixia server, you can create different type of tests according to your needs. Thanks
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com