// Override a few options if mclock scheduler is enabled.
maybe_override_sleep_options_for_qos();
- maybe_override_cost_for_qos();
maybe_override_options_for_qos();
maybe_override_max_osd_capacity_for_qos();
changed.count("osd_recovery_sleep_hybrid")) {
maybe_override_sleep_options_for_qos();
}
- if (changed.count("osd_pg_delete_cost")) {
- maybe_override_cost_for_qos();
- }
if (changed.count("osd_min_recovery_priority")) {
service.local_reserver.set_min_priority(cct->_conf->osd_min_recovery_priority);
service.remote_reserver.set_min_priority(cct->_conf->osd_min_recovery_priority);
}
}
-void OSD::maybe_override_cost_for_qos()
-{
- // If the scheduler enabled is mclock, override the default PG deletion cost
- // so that mclock can meet the QoS goals.
- if (op_queue_type_t::mClockScheduler == osd_op_queue_type()) {
- uint64_t pg_delete_cost = 1048576;
- cct->_conf.set_val("osd_pg_delete_cost", std::to_string(pg_delete_cost));
- }
-}
/**
* A context for receiving status from a background mon command to set
void maybe_override_sleep_options_for_qos();
bool maybe_override_options_for_qos(
const std::set<std::string> *changed = nullptr);
- void maybe_override_cost_for_qos();
int run_osd_bench_test(int64_t count,
int64_t bsize,
int64_t osize,