COMMAND("osd reweight-by-utilization " \
"name=oload,type=CephInt,range=100,req=false " \
"name=max_change,type=CephFloat,req=false " \
+ "name=max_osds,type=CephInt,req=false " \
"name=no_increasing,type=CephChoices,strings=--no-increasing,req=false",\
"reweight OSDs by utilization [overload-percentage-for-consideration, default 120]", \
"osd", "rw", "cli,rest")
COMMAND("osd test-reweight-by-utilization " \
"name=oload,type=CephInt,range=100,req=false " \
"name=max_change,type=CephFloat,req=false " \
+ "name=max_osds,type=CephInt,req=false " \
"name=no_increasing,type=CephChoices,strings=--no-increasing,req=false",\
"dry run of 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=max_osds,type=CephInt,req=false " \
"name=pools,type=CephPoolname,n=N,req=false", \
"reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \
"osd", "rw", "cli,rest")
COMMAND("osd test-reweight-by-pg " \
"name=oload,type=CephInt,range=100,req=false " \
"name=max_change,type=CephFloat,req=false " \
+ "name=max_osds,type=CephInt,req=false " \
"name=pools,type=CephPoolname,n=N,req=false", \
"dry run of reweight OSDs by PG distribution [overload-percentage-for-consideration, default 120]", \
"osd", "rw", "cli,rest")
*/
int OSDMonitor::reweight_by_utilization(int oload,
double max_changef,
+ int max_osds,
bool by_pg, const set<int64_t> *pools,
bool no_increasing,
bool dry_run,
f->open_object_section("reweight_by_utilization");
f->dump_unsigned("overload_min", oload);
f->dump_float("max_change", max_changef);
+ f->dump_float("max_change_osds", max_osds);
f->dump_float("average_utilization", average_util);
f->dump_float("overload_utilization", overload_util);
} else {
oss << "oload " << oload << "\n";
oss << "max_change " << max_changef << "\n";
+ oss << "max_change_osds " << max_osds << "\n";
char buf[128];
snprintf(buf, sizeof(buf), "average %04f\noverload %04f\n",
average_util, overload_util);
(float)new_weight / (float)0x10000);
oss << buf;
}
- if (++num_changed >= g_conf->mon_reweight_max_osds)
+ if (++num_changed >= max_osds)
break;
}
if (!no_increasing && util <= underload_util) {
(float)weight / (float)0x10000,
(float)new_weight / (float)0x10000);
oss << buf;
- if (++num_changed >= g_conf->mon_reweight_max_osds)
+ if (++num_changed >= max_osds)
break;
}
}
err = -EINVAL;
goto reply;
}
+ int64_t max_osds = g_conf->mon_reweight_max_osds;
+ cmd_getval(g_ceph_context, cmdmap, "max_osds", max_osds);
string no_increasing;
cmd_getval(g_ceph_context, cmdmap, "no_increasing", no_increasing);
string out_str;
err = reweight_by_utilization(oload,
max_change,
+ max_osds,
by_pg,
pools.empty() ? NULL : &pools,
no_increasing == "--no-increasing",