diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index 32dbc5398dc..fbd30b81528 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -152,6 +152,9 @@ void OpTracker::unregister_inflight_op(TrackedOp *i) bool OpTracker::check_ops_in_flight(std::vector &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 &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); diff --git a/src/mds/MDS.cc b/src/mds/MDS.cc index 7462c82129b..1679328a1a8 100644 --- a/src/mds/MDS.cc +++ b/src/mds/MDS.cc @@ -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); diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f6be098442c..4b6a7d69a0b 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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);