Problem with iRule Message-based load balancing
Hi all,
I'm using this iRule, I need to use message-based load balancing because I have an application that in a connection handles thousands of conversations then those conversations I need to be balanced because right now all go to the first node where the connection is opened. It works perfectly, the traffic is balanced as I hope, but when I apply the iRule and the traffic increases, the device start to have failover events and this message appears in the CLI "Re-starting tmm and Re-starting tmm1"
I opened a case in support, but I have had no response. Any ideas?
The steps I took were:
-
tmsh create ltm profile mblb my_mblb { ingress-high 20000 ingress-low 15000 min-conn 15 }
-
tmsh modify ltm virtual my_vs {profiles add {my_mblb}}
-
Apply the iRule to the VS
when CLIENT_ACCEPTED {
set client_closed 0
TCP::collect
}
when CLIENT_CLOSED {
set client_closed 1
}
when SERVER_CONNECTED {
after 1000 -periodic if {$client_closed} {TCP::close}
}
when CLIENT_DATA {
binary scan [TCP::payload] II head rlen
if {($head & 0x3) == 1} {
if {[TCP::payload length] < [expr {8 + $rlen}]} {
TCP::collect [expr {$rlen + 8 - [TCP::payload length]}]
return
} }
pool my_pool
TCP::release [expr {$rlen + 8}]
TCP::notify request
TCP::collect
}