From 1c30cad1abbda944c9406642a188e2ab097accfe Mon Sep 17 00:00:00 2001 From: antirez Date: Thu, 21 Apr 2011 16:55:27 +0200 Subject: [PATCH] peak mem in INFO backported from unstable branch --- src/redis.c | 12 +++++++++++- src/redis.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/redis.c b/src/redis.c index 676acd55..fd7e56b2 100644 --- a/src/redis.c +++ b/src/redis.c @@ -541,6 +541,10 @@ int serverCron(struct aeEventLoop *eventLoop, long long id, void *clientData) { */ updateLRUClock(); + /* Record the max memory used since the server was started. */ + if (zmalloc_used_memory() > server.stat_peak_memory) + server.stat_peak_memory = zmalloc_used_memory(); + /* We received a SIGTERM, shutting down here in a safe way, as it is * not ok doing so inside the signal handler. */ if (server.shutdown_asap) { @@ -902,6 +906,7 @@ void initServer() { server.stat_starttime = time(NULL); server.stat_keyspace_misses = 0; server.stat_keyspace_hits = 0; + server.stat_peak_memory = 0; server.unixtime = time(NULL); aeCreateTimeEvent(server.el, 1, serverCron, NULL, NULL); if (server.ipfd > 0 && aeCreateFileEvent(server.el,server.ipfd,AE_READABLE, @@ -1148,7 +1153,7 @@ sds genRedisInfoString(void) { sds info; time_t uptime = time(NULL)-server.stat_starttime; int j; - char hmem[64]; + char hmem[64], peak_hmem[64]; struct rusage self_ru, c_ru; unsigned long lol, bib; @@ -1157,6 +1162,7 @@ sds genRedisInfoString(void) { getClientsMaxBuffers(&lol,&bib); bytesToHuman(hmem,zmalloc_used_memory()); + bytesToHuman(peak_hmem,server.stat_peak_memory); info = sdscatprintf(sdsempty(), "redis_version:%s\r\n" "redis_git_sha1:%s\r\n" @@ -1179,6 +1185,8 @@ sds genRedisInfoString(void) { "used_memory:%zu\r\n" "used_memory_human:%s\r\n" "used_memory_rss:%zu\r\n" + "used_memory_peak:%zu\r\n" + "used_memory_peak_human:%s\r\n" "mem_fragmentation_ratio:%.2f\r\n" "use_tcmalloc:%d\r\n" "loading:%d\r\n" @@ -1219,6 +1227,8 @@ sds genRedisInfoString(void) { zmalloc_used_memory(), hmem, zmalloc_get_rss(), + server.stat_peak_memory, + peak_hmem, zmalloc_get_fragmentation_ratio(), #ifdef USE_TCMALLOC 1, diff --git a/src/redis.h b/src/redis.h index 6773ea44..31f77f96 100644 --- a/src/redis.h +++ b/src/redis.h @@ -396,6 +396,7 @@ struct redisServer { long long stat_evictedkeys; /* number of evicted keys (maxmemory) */ long long stat_keyspace_hits; /* number of successful lookups of keys */ long long stat_keyspace_misses; /* number of failed lookups of keys */ + size_t stat_peak_memory; /* max used memory record */ /* Configuration */ int verbosity; int maxidletime;