diff --git a/src/yb/tserver/server_main_util.cc b/src/yb/tserver/server_main_util.cc index 6e31551a2e6..dc31e8d3998 100644 --- a/src/yb/tserver/server_main_util.cc +++ b/src/yb/tserver/server_main_util.cc @@ -33,6 +33,13 @@ #include "yb/util/size_literals.h" #include "yb/util/status.h" +DEFINE_NON_RUNTIME_bool( + use_memory_defaults_optimized_for_ysql, false, + "If true, the recommended defaults for the memory usage settings take into account the amount " + "of RAM and cores available and are optimized for using YSQL. " + "If false, the recommended defaults will be the old defaults, which are more suitable " + "for YCQL but do not take into account the amount of RAM and cores available."); + DECLARE_double(default_memory_limit_to_ram_ratio); DECLARE_int32(db_block_cache_size_percentage); DECLARE_int32(tablet_overhead_size_percentage); @@ -97,16 +104,18 @@ void AdjustMemoryLimitsIfNeeded(bool is_master) { auto values = GetLegacyMemoryValues(is_master); - values.tablet_overhead_size_percentage = is_master ? 0 : 10; - values.db_block_cache_size_percentage = is_master ? 25 : 32; - if (total_ram <= 4_GB) { - values.default_memory_limit_to_ram_ratio = is_master ? 0.20 : 0.45; - } else if (total_ram <= 8_GB) { - values.default_memory_limit_to_ram_ratio = is_master ? 0.15 : 0.48; - } else if (total_ram <= 16_GB) { - values.default_memory_limit_to_ram_ratio = is_master ? 0.10 : 0.57; - } else { - values.default_memory_limit_to_ram_ratio = is_master ? 0.10 : 0.60; + if (FLAGS_use_memory_defaults_optimized_for_ysql) { + values.tablet_overhead_size_percentage = is_master ? 0 : 10; + values.db_block_cache_size_percentage = is_master ? 25 : 32; + if (total_ram <= 4_GB) { + values.default_memory_limit_to_ram_ratio = is_master ? 0.20 : 0.45; + } else if (total_ram <= 8_GB) { + values.default_memory_limit_to_ram_ratio = is_master ? 0.15 : 0.48; + } else if (total_ram <= 16_GB) { + values.default_memory_limit_to_ram_ratio = is_master ? 0.10 : 0.57; + } else { + values.default_memory_limit_to_ram_ratio = is_master ? 0.10 : 0.60; + } } AdjustMemoryLimits(values);