]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
common,osd: Use last valid OSD IOPS value if measured IOPS is unrealistic
authorSridhar Seshasayee <sseshasa@redhat.com>
Wed, 11 Sep 2024 13:25:10 +0000 (18:55 +0530)
committerSridhar Seshasayee <sseshasa@redhat.com>
Thu, 7 Nov 2024 08:38:54 +0000 (14:08 +0530)
commit0c84913e9087ddc845513119e4a75307f920eec2
tree55a1f0d972cb98f782ab39e4a8abcb32b861aca3
parent8e5ddf6be8275b0bea3f801d59c163e2207f6be3
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>
(cherry picked from commit da4b85c55a15f49b241f3fc44dda2263b42dc637)
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