From a764f90e8884ec6f034ef4e5eb71c238a0c55a61 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Mon, 24 Jul 2017 15:31:52 +0900 Subject: [PATCH] osd: add multiple objecter finishers Bluestore and Filestore already adapt multiple finishers to improve IO performance. But Objecter finisher (for tier approach) is still single thread. This can be a bottleneck if we generate many IOs as Bluestore and Filestore because most of completion processes (proxy, writeback) are handled by a objecter finisher. Signed-off-by: Myoungwon Oh --- src/common/legacy_config_opts.h | 1 + src/common/options.cc | 4 ++++ src/osd/OSD.cc | 24 ++++++++++++++++++++---- src/osd/OSD.h | 3 ++- src/osd/PrimaryLogPG.cc | 12 ++++++++---- 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/common/legacy_config_opts.h b/src/common/legacy_config_opts.h index f680d68a92f..fe505a0f88d 100644 --- a/src/common/legacy_config_opts.h +++ b/src/common/legacy_config_opts.h @@ -663,6 +663,7 @@ OPTION(osd_tier_default_cache_min_read_recency_for_promote, OPT_INT) // number o OPTION(osd_tier_default_cache_min_write_recency_for_promote, OPT_INT) // number of recent HitSets the object must appear in to be promoted (on write) OPTION(osd_tier_default_cache_hit_set_grade_decay_rate, OPT_INT) OPTION(osd_tier_default_cache_hit_set_search_last_n, OPT_INT) +OPTION(osd_objecter_finishers, OPT_INT) OPTION(osd_map_dedup, OPT_BOOL) OPTION(osd_map_max_advance, OPT_INT) // make this < cache_size! diff --git a/src/common/options.cc b/src/common/options.cc index 13633d57083..aeb7d69a409 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -1817,6 +1817,10 @@ std::vector