]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: tweaks to improve throughput for journaled IO 29723/head
authorJason Dillaman <dillaman@redhat.com>
Thu, 13 Jun 2019 19:22:54 +0000 (15:22 -0400)
committerJason Dillaman <dillaman@redhat.com>
Mon, 19 Aug 2019 15:16:34 +0000 (11:16 -0400)
Increase the per-object append flush bytes to 1MiB to mimic the 16MiB
in-memory writeback cache. Finally, default enable the new journal
writethrough until flush option.

Performance results comparing no journal, pre-change, and post-change:

no journal original modified
4K 40310.84 7223.73 27427.27
32K 21530.37 3256.39 10284.05
256K 3159.67 564.73 1627.16
4M 223.03 48.03 91.91

Fixes: http://tracker.ceph.com/issues/40072
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 5f3b043896762fa97eb35648f8639004c45f5978)

src/common/options.cc

index 7c022dd34a8a2a92f6ef2b15c2488aee38401f89..078c2aa696e6ee8fd7978107044d8280b2338331 100644 (file)
@@ -7329,7 +7329,7 @@ static std::vector<Option> get_rbd_options() {
     .set_description("commit time interval, seconds"),
 
     Option("rbd_journal_object_writethrough_until_flush", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
-    .set_default(false)
+    .set_default(true)
     .set_description("when enabled, the rbd_journal_object_flush* configuration "
                      "options are ignored until the first flush so that batched "
                      "journal IO is known to be safe for consistency"),
@@ -7339,7 +7339,7 @@ static std::vector<Option> get_rbd_options() {
     .set_description("maximum number of pending commits per journal object"),
 
     Option("rbd_journal_object_flush_bytes", Option::TYPE_SIZE, Option::LEVEL_ADVANCED)
-    .set_default(0)
+    .set_default(1_M)
     .set_description("maximum number of pending bytes per journal object"),
 
     Option("rbd_journal_object_flush_age", Option::TYPE_FLOAT, Option::LEVEL_ADVANCED)