]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mgr: fix dispatch throttle bottleneck causing OSD connection timeouts 69349/head
authorNitzan Mordechai <nmordech@ibm.com>
Mon, 8 Jun 2026 05:18:55 +0000 (05:18 +0000)
committerNitzan Mordechai <nmordech@ibm.com>
Thu, 25 Jun 2026 11:23:08 +0000 (11:23 +0000)
commit948de224df12b8b383460b86ba520b191dc275bc
tree68e3860eccd208ad0d311266ea79dd8bec47d5ad
parent35eb60117b4f01bab094266a5cb66331e790b702
mgr: fix dispatch throttle bottleneck causing OSD connection timeouts

The mgr dispatch throttle (ms_dispatch_throttle_bytes, default 100MB)
was far smaller than the OSD throttle (mgr_osd_bytes, 512MB),
making the dispatch queue the effective bottleneck on large clusters.

When the dispatch queue fills, OSD connections stall waiting for
throttle space. These connections time out and reconnect, causing
connection churn and heap growth from repeated connection setup/teardown.
The MGR also falls behind on PG stats processing, leading to unknown
and inactive PGs.

Add mgr_dispatch_throttle_bytes (default 1GB) and a
Messenger::set_dispatch_throttle_size() API to configure it at init time.
The new default is sized to accommodate the sum of all per-type policy
throttles, ensuring the dispatch queue is never the bottleneck.

Fixes: https://tracker.ceph.com/issues/66310
Signed-off-by: Nitzan Mordechai <nmordech@ibm.com>
doc/mgr/administrator.rst
src/common/options/mgr.yaml.in
src/mgr/DaemonServer.cc
src/msg/Messenger.h
src/msg/async/AsyncMessenger.h