]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
common,osd: Use last valid OSD IOPS value if measured IOPS is unrealistic 59743/head
authorSridhar Seshasayee <sseshasa@redhat.com>
Wed, 11 Sep 2024 13:25:10 +0000 (18:55 +0530)
committerSridhar Seshasayee <sseshasa@redhat.com>
Thu, 17 Oct 2024 11:08:20 +0000 (16:38 +0530)
commitda4b85c55a15f49b241f3fc44dda2263b42dc637
treebaeab432c6ec31ffa21cdc9a3690355ba00e4487
parentb1d5705433531e53e93dd53a01fb39d3c1894638
common,osd: Use last valid OSD IOPS value if measured IOPS is unrealistic

The OSD's IOPS capacity is used by the mClock scheduler to determine the
quantum of bandwidth allocation for the various operations on the OSD.
Prior to this commit, maybe_override_max_osd_capacity_for_qos() only
checked if the measured IOPS capacity exceeded the higher threshold defined
by 'osd_mclock_iops_capacity_threshold_[hdd|ssd]' and if so fallback to the
last valid or the default IOPS capacity as defined by
osd_mclock_max_capacity_iops_[hdd|ssd].

It's quite possible that the reported IOPS is unrealistically low. This
could be due to transient factors on the underlying device or it could
indicate bad health of the device. Either way, the safer option would be
to fallback to the last valid or the default IOPS setting for that OSD in
order to avoid cluster performance (slow or stalled ops) issues down the
line.

Therefore, to handle this case, the commit introduces additional config
options viz.,
 - osd_mclock_iops_capacity_low_threshold_hdd - set to 50 IOPS and
 - osd_mclock_iops_capacity_low_threshold_ssd - set to 1000 IOPS

If the measured IOPS capacity doesn't fall within the low and high
threshold range, the default or the last valid IOPS capacity is used.
The existing cluster log warning is suitably modified to convey the
reason.

Additionally, for a couple of valgrind related teuthology tests, the
cluster warning is added to the ignorelist since the reported IOPS can
be very low due to slowness.

Fixes: https://tracker.ceph.com/issues/67421
Signed-off-by: Sridhar Seshasayee <sseshasa@redhat.com>
doc/rados/configuration/mclock-config-ref.rst
qa/suites/rados/valgrind-leaks/1-start.yaml
qa/suites/rados/verify/validater/valgrind.yaml
src/common/options/osd.yaml.in
src/osd/OSD.cc