r523 - in trunk/varnish-cache: bin/varnishd include
phk at projects.linpro.no
phk at projects.linpro.no
Thu Jul 20 15:29:13 CEST 2006
Author: phk
Date: 2006-07-20 15:29:13 +0200 (Thu, 20 Jul 2006)
New Revision: 523
Modified:
trunk/varnish-cache/bin/varnishd/cache_session.c
trunk/varnish-cache/include/stat_field.h
Log:
Keep track of active source addresses
Modified: trunk/varnish-cache/bin/varnishd/cache_session.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_session.c 2006-07-20 12:15:49 UTC (rev 522)
+++ trunk/varnish-cache/bin/varnishd/cache_session.c 2006-07-20 13:29:13 UTC (rev 523)
@@ -73,11 +73,18 @@
c3 = NULL;
TAILQ_FOREACH_SAFE(c, ch, list, c2) {
if (c->sum == u && !strcmp(c->addr, sp->addr)) {
+ if (c->nsess == 0)
+ VSL_stats->n_srcaddr_act++;
c->nsess++;
c->ttl = now + CLIENT_TTL;
sp->srcaddr = c;
TAILQ_REMOVE(ch, c, list);
TAILQ_INSERT_TAIL(ch, c, list);
+ if (0 && c3 != NULL) {
+ TAILQ_REMOVE(ch, c3, list);
+ VSL_stats->n_srcaddr--;
+ free(c3);
+ }
AZ(pthread_mutex_unlock(&ses_mtx));
return;
}
@@ -93,6 +100,7 @@
}
if (c3 == NULL) {
c3 = malloc(sizeof *c3);
+ assert(c3 != NULL);
if (c3 != NULL)
VSL_stats->n_srcaddr++;
} else
@@ -105,6 +113,7 @@
c3->ttl = now + CLIENT_TTL;
c3->nsess = 1;
c3->sah = ch;
+ VSL_stats->n_srcaddr_act++;
TAILQ_INSERT_TAIL(ch, c3, list);
}
sp->srcaddr = c3;
@@ -135,14 +144,17 @@
SES_RelSrcAddr(struct sess *sp)
{
- if (sp->srcaddr == NULL) {
+ if (0 && sp->srcaddr == NULL) {
/* XXX who comes this way ? */
VSL(SLT_Debug, sp->fd, "had no srcaddr");
return;
}
assert(sp->srcaddr != NULL);
AZ(pthread_mutex_lock(&ses_mtx));
+ assert(sp->srcaddr->nsess > 0);
sp->srcaddr->nsess--;
+ if (sp->srcaddr->nsess == 0)
+ VSL_stats->n_srcaddr_act--;
sp->srcaddr = NULL;
AZ(pthread_mutex_unlock(&ses_mtx));
}
Modified: trunk/varnish-cache/include/stat_field.h
===================================================================
--- trunk/varnish-cache/include/stat_field.h 2006-07-20 12:15:49 UTC (rev 522)
+++ trunk/varnish-cache/include/stat_field.h 2006-07-20 13:29:13 UTC (rev 523)
@@ -11,6 +11,7 @@
MAC_STAT(backend_recycle, uint64_t, "u", "Backend connections recyles")
MAC_STAT(n_srcaddr, uint64_t, "u", "N struct srcaddr")
+MAC_STAT(n_srcaddr_act, uint64_t, "u", "N active struct srcaddr")
MAC_STAT(n_sess, uint64_t, "u", "N struct sess")
MAC_STAT(n_object, uint64_t, "u", "N struct object")
MAC_STAT(n_objecthead, uint64_t, "u", "N struct objecthead")
More information about the varnish-commit
mailing list