]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: make reweight-by-* max_change an argument
authorSage Weil <sage@redhat.com>
Thu, 3 Mar 2016 18:49:03 +0000 (13:49 -0500)
committerSage Weil <sage@redhat.com>
Thu, 3 Mar 2016 18:49:03 +0000 (13:49 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/config_opts.h
src/mon/MonCommands.h
src/mon/OSDMonitor.cc
src/mon/OSDMonitor.h

index 1eb307f7662634f69ef06b2392aecc300495800e..5ebe5fb65022fd65f8001a7798052b6cd9a6766d 100644 (file)
@@ -282,7 +282,6 @@ OPTION(mon_max_log_entries_per_event, OPT_INT, 4096)
 OPTION(mon_reweight_min_pgs_per_osd, OPT_U64, 10)   // min pgs per osd for reweight-by-pg command
 OPTION(mon_reweight_min_bytes_per_osd, OPT_U64, 100*1024*1024)   // min bytes per osd for reweight-by-utilization command
 OPTION(mon_reweight_max_osds, OPT_INT, 4)   // max osds to change per reweight-by-* command
-OPTION(mon_reweight_max_change, OPT_FLOAT, 0.05)   // max change to each osd per reweight-by-* command
 OPTION(mon_health_data_update_interval, OPT_FLOAT, 60.0)
 OPTION(mon_health_to_clog, OPT_BOOL, true)
 OPTION(mon_health_to_clog_interval, OPT_INT, 3600)
index 247bccba9588676e26fb26fadf2350efd440a219..be6f99a1c97a083477e336cc7b199e4aef6d657e 100644 (file)
@@ -703,12 +703,14 @@ COMMAND("osd pool stats " \
         "osd", "r", "cli,rest")
 COMMAND("osd reweight-by-utilization " \
        "name=oload,type=CephInt,range=100,req=false " \
+       "name=max_change,type=CephFloat,req=false "                     \
        "name=no_increasing,type=CephChoices,strings=--no-increasing,req=false " \
        "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
        "reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \
        "osd", "rw", "cli,rest")
 COMMAND("osd reweight-by-pg " \
        "name=oload,type=CephInt,range=100,req=false " \
+       "name=max_change,type=CephFloat,req=false "                     \
        "name=no_increasing,type=CephChoices,strings=--no-increasing,req=false " \
        "name=pools,type=CephPoolname,n=N,req=false " \
        "name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
index 3bf56bea08aacb8d3cd6ff37931eba0264c7bc28..edb7cd6e791518e2a148c0468de9a5ac3c504a16 100644 (file)
@@ -480,6 +480,7 @@ void OSDMonitor::update_logger()
  */
 int OSDMonitor::reweight_by_utilization(int oload, std::string& out_str,
                                        bool by_pg, const set<int64_t> *pools,
+                                       float max_change,
                                        bool no_increasing, bool sure)
 {
   if (oload <= 100) {
@@ -605,7 +606,7 @@ int OSDMonitor::reweight_by_utilization(int oload, std::string& out_str,
       // to represent e.g. differing storage capacities
       unsigned weight = osdmap.get_weight(p->first);
       unsigned new_weight = (unsigned)((average_util / util) * (float)weight);
-      new_weight = MAX(new_weight, weight - g_conf->mon_reweight_max_change);
+      new_weight = MAX(new_weight, weight - max_change);
       if (sure) {
        pending_inc.new_weight[p->first] = new_weight;
        changed = true;
@@ -622,7 +623,7 @@ int OSDMonitor::reweight_by_utilization(int oload, std::string& out_str,
       // assign a higher weight.. if we can.
       unsigned weight = osdmap.get_weight(p->first);
       unsigned new_weight = (unsigned)((average_util / util) * (float)weight);
-      new_weight = MIN(new_weight, weight + g_conf->mon_reweight_max_change);
+      new_weight = MIN(new_weight, weight + max_change);
       if (new_weight > 0x10000)
           new_weight = 0x10000;
       if (new_weight > weight) {
@@ -7451,11 +7452,14 @@ done:
   } else if (prefix == "osd reweight-by-utilization") {
     int64_t oload;
     cmd_getval(g_ceph_context, cmdmap, "oload", oload, int64_t(120));
+    float max_change;
+    cmd_getval(g_ceph_context, cmdmap, "max_change", max_change);
     string no_increasing, sure;
     cmd_getval(g_ceph_context, cmdmap, "no_increasing", no_increasing);
     cmd_getval(g_ceph_context, cmdmap, "sure", sure);
     string out_str;
     err = reweight_by_utilization(oload, out_str, false, NULL,
+                                 max_change,
                                  no_increasing == "--no-increasing",
                                  sure == "--yes-i-really-mean-it");
     if (err < 0) {
@@ -7484,12 +7488,15 @@ done:
       }
       pools.insert(pool);
     }
+    float max_change;
+    cmd_getval(g_ceph_context, cmdmap, "max_change", max_change);
     string no_increasing, sure;
     cmd_getval(g_ceph_context, cmdmap, "no_increasing", no_increasing);
     cmd_getval(g_ceph_context, cmdmap, "sure", sure);
     string out_str;
     err = reweight_by_utilization(oload, out_str, true,
                                  pools.empty() ? NULL : &pools,
+                                 max_change,
                                  no_increasing == "--no-increasing",
                                  sure == "--yes-i-really-mean-it");
     if (err < 0) {
index 07cbfcc6e20e18c6ec04eae2c75b7496dbe91059..fb3ea768f8c29c3af3838f36cada67ad8d800435 100644 (file)
@@ -228,7 +228,9 @@ public:
                        MonOpRequestRef req = MonOpRequestRef());
 private:
   int reweight_by_utilization(int oload, std::string& out_str, bool by_pg,
-                             const set<int64_t> *pools, bool no_increasing,
+                             const set<int64_t> *pools,
+                             float max_change,
+                             bool no_increasing,
                              bool sure);
   void print_utilization(ostream &out, Formatter *f, bool tree) const;