From a4ccc21f04e307ce899d2c49d5e589cc1de922b4 Mon Sep 17 00:00:00 2001 From: Nathan <151768548+nathanlo-hrt@users.noreply.github.com> Date: Wed, 13 Nov 2024 01:11:37 -0500 Subject: [PATCH] feat(config): make rocksdb.dump_malloc_stats configurable (#2658) Co-authored-by: hulk Co-authored-by: Twice --- kvrocks.conf | 6 ++++++ src/config/config.cc | 1 + src/config/config.h | 1 + src/storage/storage.cc | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/kvrocks.conf b/kvrocks.conf index e7de065c5ea..0ff0ce50508 100644 --- a/kvrocks.conf +++ b/kvrocks.conf @@ -749,6 +749,12 @@ rocksdb.wal_compression no # default is 512MB rocksdb.max_total_wal_size 512 +# Whether to print malloc stats together with rocksdb.stats when printing to LOG. +# +# Accepted values: "yes", "no" +# Default: yes +rocksdb.dump_malloc_stats yes + # We implement the replication with rocksdb WAL, it would trigger full sync when the seq was out of range. # wal_ttl_seconds and wal_size_limit_mb would affect how archived logs will be deleted. # If WAL_ttl_seconds is not 0, then WAL files will be checked every WAL_ttl_seconds / 2 and those that diff --git a/src/config/config.cc b/src/config/config.cc index f14dc78c614..165e352f25d 100644 --- a/src/config/config.cc +++ b/src/config/config.cc @@ -258,6 +258,7 @@ Config::Config() { rocksdb::CompressionType::kNoCompression)}, {"rocksdb.wal_ttl_seconds", true, new IntField(&rocks_db.wal_ttl_seconds, 3 * 3600, 0, INT_MAX)}, {"rocksdb.wal_size_limit_mb", true, new IntField(&rocks_db.wal_size_limit_mb, 16384, 0, INT_MAX)}, + {"rocksdb.dump_malloc_stats", true, new YesNoField(&rocks_db.dump_malloc_stats, true)}, {"rocksdb.max_total_wal_size", false, new IntField(&rocks_db.max_total_wal_size, 64 * 4 * 2, 0, INT_MAX)}, {"rocksdb.disable_auto_compactions", false, new YesNoField(&rocks_db.disable_auto_compactions, false)}, {"rocksdb.enable_pipelined_write", true, new YesNoField(&rocks_db.enable_pipelined_write, false)}, diff --git a/src/config/config.h b/src/config/config.h index bc33ac97c82..61ac0cf88cd 100644 --- a/src/config/config.h +++ b/src/config/config.h @@ -197,6 +197,7 @@ struct Config { int wal_ttl_seconds; int wal_size_limit_mb; int max_total_wal_size; + bool dump_malloc_stats; int level0_slowdown_writes_trigger; int level0_stop_writes_trigger; int level0_file_num_compaction_trigger; diff --git a/src/storage/storage.cc b/src/storage/storage.cc index 234309f5f1a..a446e3f0b2d 100644 --- a/src/storage/storage.cc +++ b/src/storage/storage.cc @@ -191,7 +191,7 @@ rocksdb::Options Storage::InitRocksDBOptions() { options.WAL_size_limit_MB = static_cast(config_->rocks_db.wal_size_limit_mb); options.max_total_wal_size = static_cast(config_->rocks_db.max_total_wal_size * MiB); options.listeners.emplace_back(new EventListener(this)); - options.dump_malloc_stats = true; + options.dump_malloc_stats = config_->rocks_db.dump_malloc_stats; sst_file_manager_ = std::shared_ptr(rocksdb::NewSstFileManager(rocksdb::Env::Default())); options.sst_file_manager = sst_file_manager_; int64_t max_io_mb = kIORateLimitMaxMb;