]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "ceph_osd: remove client message cap limit" 35738/head
authorJosh Durgin <jdurgin@redhat.com>
Sat, 25 Jan 2020 00:36:56 +0000 (19:36 -0500)
committerNeha Ojha <nojha@redhat.com>
Wed, 24 Jun 2020 01:33:19 +0000 (01:33 +0000)
This reverts commit 45d5ac3ea040d6a7213b63d1c582e3a1bbaae8d4.

Without a msg throttler, we can't change osd_client_message_cap cap.
The throttler is designed to work with 0 as a max, so change the
default to 0 to disable it by default instead.

This doesn't affect the default behavior, it only lets us use this
option again.

Fixes: https://tracker.ceph.com/issues/46143
Conflicts:
src/ceph_osd.cc - new style of gconf() access

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
Signed-off-by: Neha Ojha <nojha@redhat.com>
(cherry picked from commit 9087e3b751a78211011b39377394ceb297078f76)

src/ceph_osd.cc
src/common/options.cc

index 998f3707468b5a1500fcbbbfd686a759ae87857a..347feab1c8efeb5a0c4718efbc565e2bdae3cabc 100644 (file)
@@ -575,6 +575,9 @@ flushjournal_out:
     g_conf().get_val<Option::size_t>("osd_client_message_size_cap");
   boost::scoped_ptr<Throttle> client_byte_throttler(
     new Throttle(g_ceph_context, "osd_client_bytes", message_size));
+  uint64_t message_cap = g_conf().get_val<uint64_t>("osd_client_message_cap");
+  boost::scoped_ptr<Throttle> client_msg_throttler(
+    new Throttle(g_ceph_context, "osd_client_messages", message_cap));
 
   // All feature bits 0 - 34 should be present from dumpling v0.67 forward
   uint64_t osd_required =
@@ -585,7 +588,7 @@ flushjournal_out:
   ms_public->set_default_policy(Messenger::Policy::stateless_server(0));
   ms_public->set_policy_throttlers(entity_name_t::TYPE_CLIENT,
                                   client_byte_throttler.get(),
-                                  nullptr);
+                                  client_msg_throttler.get());
   ms_public->set_policy(entity_name_t::TYPE_MON,
                         Messenger::Policy::lossy_client(osd_required));
   ms_public->set_policy(entity_name_t::TYPE_MGR,
@@ -757,6 +760,7 @@ flushjournal_out:
   delete ms_objecter;
 
   client_byte_throttler.reset();
+  client_msg_throttler.reset();
 
   // cd on exit, so that gmon.out (if any) goes into a separate directory for each node.
   char s[20];
index e490cb3703a1c8d0f5b178209f1d9efc0a2f0687..21bc1a9abbefff16f870efea846473be8ee4c651 100644 (file)
@@ -2508,7 +2508,7 @@ std::vector<Option> get_global_options() {
     .set_long_description("If this value is exceeded, the OSD will not read any new client data off of the network until memory is freed."),
 
     Option("osd_client_message_cap", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
-    .set_default(100)
+    .set_default(0)
     .set_description("maximum number of in-flight client requests"),
 
     Option("osd_crush_update_weight_set", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)