diff options
author | antirez <antirez@gmail.com> | 2015-09-28 10:51:25 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2015-10-01 13:02:26 +0200 |
commit | 1f26a9468ff3e61ee9ae4225628647d4054fe20c (patch) | |
tree | 6c89addf6afed3b05c58f93ab28f647e4ded5764 | |
parent | c69c6c80fb5376a30e8cda34443a55b6326c9aa7 (diff) | |
download | redis-1f26a9468ff3e61ee9ae4225628647d4054fe20c.tar.gz |
Lazyfree: pending objects count in INFO output.
-rw-r--r-- | src/lazyfree.c | 5 | ||||
-rw-r--r-- | src/server.c | 6 | ||||
-rw-r--r-- | src/server.h | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/lazyfree.c b/src/lazyfree.c index 321bd5411..e471ba004 100644 --- a/src/lazyfree.c +++ b/src/lazyfree.c @@ -6,6 +6,11 @@ static size_t lazyfree_objects = 0; pthread_mutex_t lazyfree_objects_mutex = PTHREAD_MUTEX_INITIALIZER; +/* Return the number of currently pending objects to free. */ +size_t lazyfreeGetPendingObjectsCount(void) { + return lazyfree_objects; +} + /* Return the amount of work needed in order to free an object. * The return value is not always the actual number of allocations the * object is compoesd of, but a number proportional to it. diff --git a/src/server.c b/src/server.c index d9470f6d7..6fe42a745 100644 --- a/src/server.c +++ b/src/server.c @@ -2803,7 +2803,8 @@ sds genRedisInfoString(char *section) { "maxmemory_human:%s\r\n" "maxmemory_policy:%s\r\n" "mem_fragmentation_ratio:%.2f\r\n" - "mem_allocator:%s\r\n", + "mem_allocator:%s\r\n" + "lazyfree_pending_objects:%zu\r\n", zmalloc_used, hmem, server.resident_set_size, @@ -2818,7 +2819,8 @@ sds genRedisInfoString(char *section) { maxmemory_hmem, evict_policy, zmalloc_get_fragmentation_ratio(server.resident_set_size), - ZMALLOC_LIB + ZMALLOC_LIB, + lazyfreeGetPendingObjectsCount() ); } diff --git a/src/server.h b/src/server.h index 7ba9a4325..d9633e460 100644 --- a/src/server.h +++ b/src/server.h @@ -1414,6 +1414,7 @@ void slotToKeyFlush(void); int dbAsyncDelete(redisDb *db, robj *key); void emptyDbAsync(redisDb *db); void slotToKeyFlushAsync(void); +size_t lazyfreeGetPendingObjectsCount(void); /* API to get key arguments from commands */ int *getKeysFromCommand(struct redisCommand *cmd, robj **argv, int argc, int *numkeys); |