mirror of
https://github.com/ceph/ceph
synced 2025-03-20 01:07:42 +00:00
Merge pull request #4929 from wonzhq/tracked-op
common: tracked op fixes Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
commit
edd3542df1
@ -152,6 +152,9 @@ void OpTracker::unregister_inflight_op(TrackedOp *i)
|
||||
|
||||
bool OpTracker::check_ops_in_flight(std::vector<string> &warning_vector)
|
||||
{
|
||||
if (!tracking_enabled)
|
||||
return false;
|
||||
|
||||
utime_t now = ceph_clock_now(cct);
|
||||
utime_t too_old = now;
|
||||
too_old -= complaint_time;
|
||||
@ -191,7 +194,8 @@ bool OpTracker::check_ops_in_flight(std::vector<string> &warning_vector)
|
||||
|
||||
int slow = 0; // total slow
|
||||
int warned = 0; // total logged
|
||||
for (uint32_t iter = 0; iter < num_optracker_shards; iter++) {
|
||||
for (uint32_t iter = 0;
|
||||
iter < num_optracker_shards && warned < log_threshold; iter++) {
|
||||
ShardedTrackingData* sdata = sharded_in_flight_list[iter];
|
||||
assert(NULL != sdata);
|
||||
Mutex::Locker locker(sdata->ops_in_flight_lock_sharded);
|
||||
|
@ -242,9 +242,17 @@ bool MDS::asok_command(string command, cmdmap_t& cmdmap, string format,
|
||||
f->dump_string("error", "mds_not_active");
|
||||
} else if (command == "dump_ops_in_flight" ||
|
||||
command == "ops") {
|
||||
op_tracker.dump_ops_in_flight(f);
|
||||
if (!op_tracker.tracking_enabled) {
|
||||
ss << "op_tracker tracking is not enabled";
|
||||
} else {
|
||||
op_tracker.dump_ops_in_flight(f);
|
||||
}
|
||||
} else if (command == "dump_historic_ops") {
|
||||
op_tracker.dump_historic_ops(f);
|
||||
if (!op_tracker.tracking_enabled) {
|
||||
ss << "op_tracker tracking is not enabled";
|
||||
} else {
|
||||
op_tracker.dump_historic_ops(f);
|
||||
}
|
||||
} else if (command == "osdmap barrier") {
|
||||
int64_t target_epoch = 0;
|
||||
bool got_val = cmd_getval(g_ceph_context, cmdmap, "target_epoch", target_epoch);
|
||||
|
@ -1635,9 +1635,17 @@ bool OSD::asok_command(string command, cmdmap_t& cmdmap, string format,
|
||||
store->sync_and_flush();
|
||||
} else if (command == "dump_ops_in_flight" ||
|
||||
command == "ops") {
|
||||
op_tracker.dump_ops_in_flight(f);
|
||||
if (!op_tracker.tracking_enabled) {
|
||||
ss << "op_tracker tracking is not enabled";
|
||||
} else {
|
||||
op_tracker.dump_ops_in_flight(f);
|
||||
}
|
||||
} else if (command == "dump_historic_ops") {
|
||||
op_tracker.dump_historic_ops(f);
|
||||
if (!op_tracker.tracking_enabled) {
|
||||
ss << "op_tracker tracking is not enabled";
|
||||
} else {
|
||||
op_tracker.dump_historic_ops(f);
|
||||
}
|
||||
} else if (command == "dump_op_pq_state") {
|
||||
f->open_object_section("pq");
|
||||
op_shardedwq.dump(f);
|
||||
|
Loading…
Reference in New Issue
Block a user