]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
ceph-dedup-tool: show object count explosion too
authorSage Weil <sage@newdream.net>
Thu, 14 May 2020 20:46:57 +0000 (15:46 -0500)
committerSage Weil <sage@newdream.net>
Wed, 27 May 2020 12:47:28 +0000 (07:47 -0500)
Also show dedup ratio as dedup_size/original_size (1.0 = no dedup,
.9 = 10%, etc.)

Signed-off-by: Sage Weil <sage@newdream.net>
src/tools/ceph_dedup_tool.cc

index 42992efcc4527bd65bd206c856868b84b5695297..c509b3062aee376eae6ac33c3bf4b6835b48380c 100644 (file)
@@ -58,6 +58,7 @@ struct EstimateResult {
   // < key, <count, chunk_size> >
   map< string, pair <uint64_t, uint64_t> > chunk_statistics;
   uint64_t total_bytes = 0;
+  std::atomic<uint64_t> total_objects = {0};
 
   EstimateResult(std::string alg, int chunk_size)
     : cdc(CDC::create(alg, chunk_size)),
@@ -101,10 +102,12 @@ struct EstimateResult {
     for (auto& j : chunk_statistics) {
       dedup_bytes += j.second.second;
     }
-    double dedup_ratio = 1.0 - ((double)dedup_bytes / (double)total_bytes);
-    f->dump_unsigned("dedup_bytes", dedup_bytes);
+    //f->dump_unsigned("dedup_bytes", dedup_bytes);
     //f->dump_unsigned("original_bytes", total_bytes);
-    f->dump_float("dedup_ratio", dedup_ratio);
+    f->dump_float("dedup_bytes_ratio",
+                 (double)dedup_bytes / (double)total_bytes);
+    f->dump_float("dedup_objects_ratio",
+                 (double)dedup_objects / (double)total_objects);
 
     uint64_t avg = total_bytes / dedup_objects;
     uint64_t sqsum = 0;
@@ -373,6 +376,7 @@ void EstimateDedupRatio::estimate_dedup_ratio()
            cout << " " << oid <<  " " << p.first << "~" << p.second << std::endl;
          }
        }
+       ++i.second.total_objects;
       }
     }
   }