diff options
author | Dustin Sallings <dustin@spy.net> | 2009-03-17 15:02:07 -0700 |
---|---|---|
committer | Dustin Sallings <dustin@spy.net> | 2009-03-23 21:31:56 -0700 |
commit | 2b40d72c04e523d44d46d44e62d416bcf9216c8e (patch) | |
tree | 4fe60c2d17746c424f971c879b9eac7f5fbd252f | |
parent | 7cf9489b2cad1e984bfd58fea5000aa4d5a562e4 (diff) | |
download | memcached-2b40d72c04e523d44d46d44e62d416bcf9216c8e.tar.gz |
stats slab's used_chunks should show chunks put to use
It was a bit unclear what it was doing before, but it started out with
a value equal to total_chunks, which was surely wrong.
This change and its accompanying test ensure the value makes a bit
more sense.
-rw-r--r-- | slabs.c | 2 | ||||
-rw-r--r-- | t/issue_29.t | 26 |
2 files changed, 27 insertions, 1 deletions
@@ -424,7 +424,7 @@ static char *do_slabs_stats(uint32_t (*add_stats)(char *buf, const char *key, bufcurr += nbytes; sprintf(key, "%d:used_chunks", i); - sprintf(val, "%u", ((slabs*perslab) - p->sl_curr)); + sprintf(val, "%u", slabs*perslab - p->sl_curr - p->end_page_free); nbytes = add_stats(bufcurr, key, strlen(key), val, strlen(val), c); linelen += nbytes; bufcurr += nbytes; diff --git a/t/issue_29.t b/t/issue_29.t new file mode 100644 index 0000000..a585f97 --- /dev/null +++ b/t/issue_29.t @@ -0,0 +1,26 @@ +#!/usr/bin/perl + +use strict; +use Test::More tests => 4; +use FindBin qw($Bin); +use lib "$Bin/lib"; +use MemcachedTest; + +my $server = new_memcached(); +my $sock = $server->sock; + +print $sock "set issue29 0 0 0\r\n\r\n"; +is (scalar <$sock>, "STORED\r\n", "stored issue29"); + +my $first_stats = mem_stats($sock, "slabs"); +my $first_used = $first_stats->{"1:used_chunks"}; + +is(1, $first_used, "Used one"); + +print $sock "set issue29_b 0 0 0\r\n\r\n"; +is (scalar <$sock>, "STORED\r\n", "stored issue29_b"); + +my $second_stats = mem_stats($sock, "slabs"); +my $second_used = $second_stats->{"1:used_chunks"}; + +is(2, $second_used, "Used two") |