Project

General

Profile

Bug #58607

osd: PushOp and PullOp costs for mClock don't reflect the size of the object leading to degraded recovery performance.

Added by Sridhar Seshasayee about 2 months ago. Updated about 2 months ago.

Status:
Fix Under Review
Priority:
Normal
Category:
Performance/Resource Usage
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
OSD
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Currently, PullOp cost is set to the following:

uint64_t PullOp::cost(CephContext *cct) const
{
  return cct->_conf->osd_push_per_object_cost +
    cct->_conf->osd_recovery_max_chunk;
}

See:
https://github.com/ceph/ceph/blob/d33a2a9181435d8834586f02a41e0cc49d6dd4b6/src/osd/osd_types.cc#L6775

In addition, the cost could be further aggregated based on the
number of PullOp items in MOSDPGPull message.

However, PushOp cost appears to reflect a little over the object size and
therefore, this may not need any change for mClock but will need to
be verified.

See: https://github.com/ceph/ceph/blob/d33a2a9181435d8834586f02a41e0cc49d6dd4b6/src/osd/osd_types.cc#L6872

History

#1 Updated by Sridhar Seshasayee about 2 months ago

  • Status changed from New to Fix Under Review
  • Pull request ID set to 49975

Also available in: Atom PDF