LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

how does LVS persistence work?

To: lvs-devel@xxxxxxxxxxxxxxx
Subject: how does LVS persistence work?
From: Tomasz Chmielewski <mangoo@xxxxxxxx>
Date: Tue, 18 Oct 2011 23:26:43 +0200
According to http://www.linuxvirtualserver.org/docs/persistence.html:

        In the persistent port, when a client first accesses the
        service, LinuxDirector will create a connection template
        between the given client and the selected server, then create
        an entry for the connection in the hash table. The template
        expires in a configurable time, and the template won't expire
        until all its connections expire.


Suppose I have two real servers and persistence set to 30 minutes.


How will LVS persistence behave for a client which first connects at 01:00?

1) persistence is always "first connected + 30 minutes".

When the client connects at 01:00, LVS sets persistence to 30 minutes.
All connections from this client, between 01:00-01:30 will be directed to one server. At ~01:31, persistence will expire and will be set again; it's possible that the client will hit the other server, even though the last connection was made at 01:29.

Meaning - if the client makes one short connection every 25 minutes and persistence is set to 30 minutes, the chances are it will hit a different server (almost) every time.

lvs-devel@xxxxxxxxxxxxxxx
2) persistence is always extended and is "last connection + 30 minutes".

In other words - if the client makes one short connection every 25 minutes and persistence is set to 30 minutes, it is practically guaranteed the client will always hit the same server.


Which one is true, 1) or 2)?



PS. http://lists.graemef.net/mailman/listinfo/lvs-users seems dead?


--
Tomasz Chmielewski
http://wpkg.org
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

<Prev in Thread] Current Thread [Next in Thread>