changeset 8670:85476be1fee2 HEAD

Sending SIGUSR2 to dovecot-auth now also logs statistics about cache inserts.
author Timo Sirainen <tss@iki.fi>
date Wed, 21 Jan 2009 15:48:51 -0500
parents 14b9a90eb01d
children 92fa46fc86f8
files src/auth/auth-cache.c
diffstat 1 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/auth-cache.c	Wed Jan 21 12:40:06 2009 -0500
+++ b/src/auth/auth-cache.c	Wed Jan 21 15:48:51 2009 -0500
@@ -19,6 +19,8 @@
 	unsigned int ttl_secs, neg_ttl_secs;
 
 	unsigned int hit_count, miss_count;
+	unsigned int pos_entries, neg_entries;
+	unsigned long long pos_size, neg_size;
 };
 
 char *auth_cache_parse_key(pool_t pool, const char *query)
@@ -108,8 +110,15 @@
 	       cache->hit_count, total_count,
 	       total_count == 0 ? 100 : (cache->hit_count * 100 / total_count));
 
-	/* reset hit counter */
+	i_info("Authentication cache inserts: "
+	       "positive: %u %lluB, negative: %u %lluB",
+	       cache->pos_entries, cache->pos_size,
+	       cache->neg_entries, cache->neg_size);
+
+	/* reset counters */
 	cache->hit_count = cache->miss_count = 0;
+	cache->pos_entries = cache->neg_entries = 0;
+	cache->pos_size = cache->neg_size = 0;
 }
 
 struct auth_cache *auth_cache_new(size_t max_size, unsigned int ttl_secs,
@@ -249,6 +258,14 @@
 
 	cache->size_left -= alloc_size;
 	hash_table_insert(cache->hash, node->data, node);
+
+	if (*value != '\0') {
+		cache->pos_entries++;
+		cache->pos_size += alloc_size;
+	} else {
+		cache->neg_entries++;
+		cache->neg_size += alloc_size;
+	}
 }
 
 void auth_cache_remove(struct auth_cache *cache,