]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Revert "ceph_osd: remove client message cap limit" 32855/head
authorJosh Durgin <jdurgin@redhat.com>
Sat, 25 Jan 2020 00:36:56 +0000 (19:36 -0500)
committerJosh Durgin <jdurgin@redhat.com>
Mon, 22 Jun 2020 17:58:15 +0000 (10:58 -0700)
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>
src/ceph_osd.cc
src/common/options.cc

index 3e03e8632396e461f45efa134aec0c4264d55e98..e0f006593480abbb2c23b82aaf2dc43c7f48ba77 100644 (file)
@@ -567,6 +567,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 =
@@ -577,7 +580,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,
@@ -750,6 +753,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 d7b1792590cb8ff2941d575fe3cbb5fec6c65cd5..c4c606127889d9909f83b00d41e7c19f12c775c4 100644 (file)
@@ -2506,7 +2506,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)