From: xie xingguo Date: Fri, 2 Feb 2018 07:12:49 +0000 (+0800) Subject: pybind/mgr/balancer: allow customized optimization threshold X-Git-Tag: v13.0.2~322^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=147625651fc712bcde3303ed8e9f6326dee1f6e7;p=ceph.git pybind/mgr/balancer: allow customized optimization threshold In practice it is hard to achieve a 100% (perfect) balanced distribution. This patch introduces a user visiable threshold configuration here, which allow user to define the minimal deviation to trigger an optimization. Signed-off-by: xie xingguo --- diff --git a/src/pybind/mgr/balancer/module.py b/src/pybind/mgr/balancer/module.py index 9f1f1d07f87..a07ae853825 100644 --- a/src/pybind/mgr/balancer/module.py +++ b/src/pybind/mgr/balancer/module.py @@ -697,8 +697,13 @@ class Module(MgrModule): osdmap = ms.osdmap crush = osdmap.get_crush() pe = self.calc_eval(ms, plan.pools) - if pe.score == 0: - detail = 'Distribution is already perfect' + min_score_to_optimize = float(self.get_config('min_score', 0)) + if pe.score <= min_score_to_optimize: + if pe.score == 0: + detail = 'Distribution is already perfect' + else: + detail = 'score %f <= min_score %f, will not optimize' \ + % (pe.score, min_score_to_optimize) self.log.info(detail) return -errno.EALREADY, detail