From 7f209537e7bf5081a6e94c4a7b3588ae6f6b4a7d Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 20 Aug 2017 22:13:25 +0100 Subject: [PATCH] [Minor] Store mempool fragmentation --- src/controller.c | 2 ++ src/libutil/mem_pool.c | 2 ++ src/libutil/mem_pool.h | 1 + 3 files changed, 5 insertions(+) diff --git a/src/controller.c b/src/controller.c index e3f4c5d3a..c3af1e4ba 100644 --- a/src/controller.c +++ b/src/controller.c @@ -2646,6 +2646,8 @@ rspamd_controller_handle_stat_common ( ucl_object_insert_key (top, ucl_object_fromint ( mem_st.oversized_chunks), "chunks_oversized", 0, false); + ucl_object_insert_key (top, + ucl_object_fromint (mem_st.fragmented_size), "fragmented", 0, false); if (do_reset) { session->ctx->srv->stat->messages_scanned = 0; diff --git a/src/libutil/mem_pool.c b/src/libutil/mem_pool.c index 187d3ca66..b5cfae311 100644 --- a/src/libutil/mem_pool.c +++ b/src/libutil/mem_pool.c @@ -317,6 +317,8 @@ memory_pool_alloc_common (rspamd_mempool_t * pool, gsize size, } else { mem_pool_stat->oversized_chunks++; + g_atomic_int_add (&mem_pool_stat->fragmented_size, + free); new = rspamd_mempool_chain_new ( size + pool->elt_len + MEM_ALIGNMENT, pool_type); } diff --git a/src/libutil/mem_pool.h b/src/libutil/mem_pool.h index 2771be0db..b3ea87099 100644 --- a/src/libutil/mem_pool.h +++ b/src/libutil/mem_pool.h @@ -110,6 +110,7 @@ typedef struct memory_pool_stat_s { guint shared_chunks_allocated; /**< shared chunks allocated */ guint chunks_freed; /**< chunks freed */ guint oversized_chunks; /**< oversized chunks */ + guint fragmented_size; /**< fragmentation size */ } rspamd_mempool_stat_t; -- 2.39.5