From 946b844a260ee4dbeab80c0e65c15eff7f50d0ef Mon Sep 17 00:00:00 2001 From: Wang Yuan Date: Sun, 13 Dec 2020 16:01:18 +0800 Subject: [PATCH] Add total_forks to INFO STATS (#8155) --- src/server.c | 4 ++++ src/server.h | 1 + 2 files changed, 5 insertions(+) diff --git a/src/server.c b/src/server.c index e4d236874..8753aa0a3 100644 --- a/src/server.c +++ b/src/server.c @@ -2925,6 +2925,7 @@ void resetServerStats(void) { server.stat_active_defrag_scanned = 0; server.stat_fork_time = 0; server.stat_fork_rate = 0; + server.stat_total_forks = 0; server.stat_rejected_conn = 0; server.stat_sync_full = 0; server.stat_sync_partial_ok = 0; @@ -4654,6 +4655,7 @@ sds genRedisInfoString(const char *section) { "pubsub_channels:%ld\r\n" "pubsub_patterns:%lu\r\n" "latest_fork_usec:%lld\r\n" + "total_forks:%lld\r\n" "migrate_cached_sockets:%ld\r\n" "slave_expires_tracked_keys:%zu\r\n" "active_defrag_hits:%lld\r\n" @@ -4690,6 +4692,7 @@ sds genRedisInfoString(const char *section) { dictSize(server.pubsub_channels), listLength(server.pubsub_patterns), server.stat_fork_time, + server.stat_total_forks, dictSize(server.migrate_cached_sockets), getSlaveKeyWithExpireCount(), server.stat_active_defrag_hits, @@ -5188,6 +5191,7 @@ int redisFork(int purpose) { closeClildUnusedResourceAfterFork(); } else { /* Parent */ + server.stat_total_forks++; server.stat_fork_time = ustime()-start; server.stat_fork_rate = (double) zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024*1024*1024); /* GB per second. */ latencyAddSampleIfNeeded("fork",server.stat_fork_time/1000); diff --git a/src/server.h b/src/server.h index 89a25a4e0..427d7c2f2 100644 --- a/src/server.h +++ b/src/server.h @@ -1215,6 +1215,7 @@ struct redisServer { size_t stat_peak_memory; /* Max used memory record */ long long stat_fork_time; /* Time needed to perform latest fork() */ double stat_fork_rate; /* Fork rate in GB/sec. */ + long long stat_total_forks; /* Total count of fork. */ long long stat_rejected_conn; /* Clients rejected because of maxclients */ long long stat_sync_full; /* Number of full resyncs with slaves. */ long long stat_sync_partial_ok; /* Number of accepted PSYNC requests. */