users@glassfish.java.net

help me understand keep-alive config.

From: Dick Davies <rasputnik_at_hellooperator.net>
Date: Fri, 29 Aug 2008 12:38:26 +0100

I've got a Citrix Netscaler in front of a Glassfish cluster - the
Netscaler uses persistent
keep-alives to the backend servers, which it routes clients requests
down (this is nice
because it prevents non-keepalive capable clients from bogging down
the servers in TCP
bookkeeping).

I did a bit of stress testing and ran this in a loop, repeating every
20 seconds or so:

gfish$ asadmin get -m instance1.http-service.keep-alive.*count

instance1.http-service.keep-alive.countconnections-count = 607
instance1.http-service.keep-alive.countflushes-count = 0
instance1.http-service.keep-alive.counthits-count = 239976
instance1.http-service.keep-alive.countrefusals-count = 434
instance1.http-service.keep-alive.counttimeouts-count = 0
instance1.http-service.keep-alive.maxconnections-count = 500
instance1.http-service.keep-alive.secondstimeouts-count = 300

Why is countconnections-count > maxconnections-count?
countrefusals-count seems related, because I saw that rise as
countconnections did.

Also, I'm not seeing countconnections drop at all, it's been a lot
longer than 5 minutes.

Finally, is there a single, shared keep-alive pool for both
http-listeners? That's fine if so,
but I have each port setup (http and https) as a separate service on
the Netscaler so I'll need
to tell it to half the number of connections it sets up.

Am I reading this wrong?

-- 
Rasputnik :: Jack of All Trades - Master of Nuns
http://number9.hellooperator.net/