Expose the outstanding_requests variable so we can more easily tune rgw_max_concurrent_requests.
Related-to: https://tracker.ceph.com/issues/48358
Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
void AsyncScheduler::request_complete()
{
--outstanding_requests;
+ if(auto c = counters(client_id::count)){
+ c->inc(throttle_counters::l_outstanding, -1);
+ }
schedule(crimson::dmclock::TimeZero);
}
break;
}
++outstanding_requests;
+ if(auto c = counters(client_id::count)){
+ c->inc(throttle_counters::l_outstanding);
+ }
// complete the request
auto& r = pull.get_retn();
void request_complete() override {
--outstanding_requests;
+ if (auto c = counters();
+ c != nullptr) {
+ c->inc(throttle_counters::l_outstanding, -1);
+ }
+
}
private:
if (outstanding_requests++ >= max_requests) {
if (auto c = counters();
c != nullptr) {
+ c->inc(throttle_counters::l_outstanding);
c->inc(throttle_counters::l_throttle);
}
return -EAGAIN;
PerfCountersBuilder b(cct, name, l_first, l_last);
b.add_u64(l_throttle, "throttle", "Requests throttled");
+ b.add_u64(l_outstanding, "outstanding", "Outstanding Requests");
auto logger = PerfCountersRef{ b.create_perf_counters(), cct };
cct->get_perfcounters_collection()->add(logger.get());
enum {
l_first = 437219,
l_throttle,
+ l_outstanding,
l_last
};