]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: dump bluefs alloc unit sizes with perf counters dump
authorIgor Fedotov <igor.fedotov@croit.io>
Wed, 24 Nov 2021 17:33:23 +0000 (20:33 +0300)
committerIgor Fedotov <igor.fedotov@croit.io>
Thu, 9 Nov 2023 13:06:07 +0000 (16:06 +0300)
Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
(cherry picked from commit d17986306d23cfbf410434aaf789546707dd7dc9)

 Conflicts:
src/os/bluestore/BlueFS.cc
 * missed backports

src/os/bluestore/BlueFS.cc
src/os/bluestore/BlueFS.h

index 55abc0b5b0119c6c302bb292ab6d33cc6bd1043f..b2f1fc813ae958032adcb3b8f0f5b16a4b61d084 100644 (file)
@@ -268,7 +268,21 @@ void BlueFS::_init_logger()
                    "Maximum bytes allocated from DB");
   b.add_u64_counter(l_bluefs_max_bytes_slow, "max_bytes_slow",
                    "Maximum bytes allocated from SLOW");
-
+  b.add_u64_counter(l_bluefs_main_alloc_unit, "alloc_unit_main",
+                   "Allocation unit size (in bytes) for primary/shared device",
+                   "aumb",
+                   PerfCountersBuilder::PRIO_CRITICAL,
+                   unit_t(UNIT_BYTES));
+  b.add_u64_counter(l_bluefs_db_alloc_unit, "alloc_unit_db",
+                   "Allocation unit size (in bytes) for standalone DB device",
+                   "audb",
+                   PerfCountersBuilder::PRIO_CRITICAL,
+                   unit_t(UNIT_BYTES));
+  b.add_u64_counter(l_bluefs_wal_alloc_unit, "alloc_unit_wal",
+                   "Allocation unit size (in bytes) for standalone WAL device",
+                   "auwb",
+                   PerfCountersBuilder::PRIO_CRITICAL,
+                   unit_t(UNIT_BYTES));
   b.add_u64_counter(l_bluefs_read_random_count, "read_random_count",
                    "random read requests processed");
   b.add_u64_counter(l_bluefs_read_random_bytes, "read_random_bytes",
@@ -506,8 +520,8 @@ int BlueFS::mkfs(uuid_d osd_uuid, const bluefs_layout_t& layout)
         get_block_device_size(BlueFS::BDEV_SLOW) * 95 / 100));
   }
 
-  _init_alloc();
   _init_logger();
+  _init_alloc();
 
   super.version = 0;
   super.block_size = bdev[BDEV_DB]->get_block_size();
@@ -560,14 +574,22 @@ void BlueFS::_init_alloc()
 {
   dout(20) << __func__ << dendl;
 
+  size_t wal_alloc_size = 0;
   if (bdev[BDEV_WAL]) {
-    alloc_size[BDEV_WAL] = cct->_conf->bluefs_alloc_size;
+    wal_alloc_size = cct->_conf->bluefs_alloc_size;
+    alloc_size[BDEV_WAL] = wal_alloc_size;
   }
+  logger->set(l_bluefs_wal_alloc_unit, wal_alloc_size);
+
   if (bdev[BDEV_SLOW]) {
     alloc_size[BDEV_DB] = cct->_conf->bluefs_alloc_size;
     alloc_size[BDEV_SLOW] = cct->_conf->bluefs_shared_alloc_size;
+    logger->set(l_bluefs_db_alloc_unit, cct->_conf->bluefs_alloc_size);
+    logger->set(l_bluefs_main_alloc_unit, cct->_conf->bluefs_shared_alloc_size);
   } else {
     alloc_size[BDEV_DB] = cct->_conf->bluefs_shared_alloc_size;
+    logger->set(l_bluefs_main_alloc_unit, 0);
+    logger->set(l_bluefs_db_alloc_unit, cct->_conf->bluefs_shared_alloc_size);
   }
   // new wal and db devices are never shared
   if (bdev[BDEV_NEWWAL]) {
index 3d5e20ca4cc488b0aded05026e0b9ace0fc8a2d2..e6d1a1fc31e353bd119fdb7924dbd7665ca094da 100644 (file)
@@ -40,6 +40,9 @@ enum {
   l_bluefs_max_bytes_wal,
   l_bluefs_max_bytes_db,
   l_bluefs_max_bytes_slow,
+  l_bluefs_main_alloc_unit,
+  l_bluefs_db_alloc_unit,
+  l_bluefs_wal_alloc_unit,
   l_bluefs_read_random_count,
   l_bluefs_read_random_bytes,
   l_bluefs_read_random_disk_count,