void mClockScheduler::set_max_osd_capacity()
{
- if (cct->_conf.get_val<double>("osd_mclock_max_capacity_iops")) {
+ if (is_rotational) {
max_osd_capacity =
- cct->_conf.get_val<double>("osd_mclock_max_capacity_iops");
+ cct->_conf.get_val<double>("osd_mclock_max_capacity_iops_hdd");
} else {
- if (is_rotational) {
- max_osd_capacity =
- cct->_conf.get_val<double>("osd_mclock_max_capacity_iops_hdd");
- } else {
- max_osd_capacity =
- cct->_conf.get_val<double>("osd_mclock_max_capacity_iops_ssd");
- }
+ max_osd_capacity =
+ cct->_conf.get_val<double>("osd_mclock_max_capacity_iops_ssd");
}
// Set per op-shard iops limit
max_osd_capacity /= num_shards;
dout(1) << __func__ << " #op shards: " << num_shards
- << " max osd capacity(iops) per shard: " << max_osd_capacity << dendl;
+ << std::fixed << std::setprecision(2)
+ << " max osd capacity(iops) per shard: " << max_osd_capacity
+ << dendl;
}
void mClockScheduler::set_osd_mclock_cost_per_io()
}
}
dout(1) << __func__ << " osd_mclock_cost_per_io: "
- << std::fixed << osd_mclock_cost_per_io << dendl;
+ << std::fixed << std::setprecision(7) << osd_mclock_cost_per_io
+ << dendl;
}
void mClockScheduler::set_osd_mclock_cost_per_byte()
}
}
dout(1) << __func__ << " osd_mclock_cost_per_byte: "
- << std::fixed << osd_mclock_cost_per_byte << dendl;
+ << std::fixed << std::setprecision(7) << osd_mclock_cost_per_byte
+ << dendl;
}
void mClockScheduler::set_mclock_profile()
return std::max(scaled_cost, 1);
}
+void mClockScheduler::update_configuration()
+{
+ // Apply configuration change. The expectation is that
+ // at least one of the tracked mclock config option keys
+ // is modified before calling this method.
+ cct->_conf.apply_changes(nullptr);
+}
+
void mClockScheduler::dump(ceph::Formatter &f) const
{
}
"osd_mclock_cost_per_byte_usec",
"osd_mclock_cost_per_byte_usec_hdd",
"osd_mclock_cost_per_byte_usec_ssd",
- "osd_mclock_max_capacity_iops",
"osd_mclock_max_capacity_iops_hdd",
"osd_mclock_max_capacity_iops_ssd",
"osd_mclock_profile",
changed.count("osd_mclock_cost_per_byte_usec_ssd")) {
set_osd_mclock_cost_per_byte();
}
- if (changed.count("osd_mclock_max_capacity_iops") ||
- changed.count("osd_mclock_max_capacity_iops_hdd") ||
+ if (changed.count("osd_mclock_max_capacity_iops_hdd") ||
changed.count("osd_mclock_max_capacity_iops_ssd")) {
set_max_osd_capacity();
if (mclock_profile != "custom") {