Forum Discussion

Dave_21103's avatar
Dave_21103
Icon for Nimbostratus rankNimbostratus
May 21, 2014

10 Second Persistence Issues

We recently changed persistence profiles on an LTM virtual from a 24 hour profile (86400 sec) to a 10 second profile. We have 9 clients that connect to this VIP, each opens anywhere from 12 to 60 connections depending on what type of client it is. The client connections are static connections that open up when the client starts and close when the client app is shutdown. Every once in a while, when we turn off a client for over 30 seconds to rebalance the pool and then turn it back on, the client reconnects to a pool member with the most connections. We have the pool configured for least connections. I verified that when we shut down the client, all of said client connections disappear. However, not all of the persistence records disappear. One remains in the LTM that has an Age on it well over 10 seconds. Has anyone ever experienced a persistence record getting stuck with an age that increments for well over what is set on the persistence profile (past 10 seconds in this case)?

 

10 Replies

  • what kind of persistence profile is this? Is there only a default persistence profile, or is there a fallback as well?

     

  • It's a source address persistence profile with no fallback set.

     

    ltm persistence source-addr PROFILE_NAME { mask 255.255.255.255 timeout 10 }

     

  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    If the app is able to deal with 10-second persistence is there even a need for persistence?

     

  • Arie, that is a good point. I spoke with the Developers and they say persistence is needed. However, if a client opens up 32 connections that remain open the entire time the client is up and operational whether or not they are sending any data over those 32 connections, what is the point of having persistence?

     

  • if the connections are staying open, persistence isn't even an issue. It won't send them to a different server in the middle of a tcp session. Do all 32 connections need to land on the same backend server? I think you would need persistence for that, but if not the system would persist a single tcp session to the same backend server without a persistence profile.

     

  • mimlo, all 32 connections do need to land on the same server so I suppose we do need persistence of some type.

     

  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    With that many connections from a single client you'll want to double-check that OneConnect is enabled...

     

  • Thanks Arie. We don't have OneConnect configured on our LTM's so I'm not familiar with that setting. Can you tell me how it would benefit us? Also, we opened a case with F5. With F5 on the WebEx the issue of the stale persistence entry went away but the issue morphed into a problem with new connections (client app restarts) not going to the pool member with the least amount of connections. The pool is set for least connections member. The F5 Engineer agreed that this is not the way the LTM should behave so he is going to dig deeper and try to figure out a resolution.

     

  • Arie's avatar
    Arie
    Icon for Altostratus rankAltostratus

    OneConnect essentially 'bundles' connections between the BIG-IP and a node. After I enabled OneConnect on our LTMs the number of connections dropped to about 10% compared to what it was before. Often servers are limited in the number of connections it will allow, which makes OneConnect all the more attractive.