]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd: Additional fields for osd "bench" command
authorКоренберг Марк <mark@ideco.ru>
Sat, 12 May 2018 17:34:45 +0000 (22:34 +0500)
committerКоренберг Марк (Dell laptop) <socketpair@gmail.com>
Sun, 13 May 2018 20:24:22 +0000 (01:24 +0500)
This patch adds new fields for output of "bench" OSD command:

* elapsed_sec (elapsed time of benchmarking process)
* iops (writes per second)

And also, it improves precision for bytes_per_sec field.

Signed-off-by: Коренберг Маркr <socketpair@gmail.com>
src/osd/OSD.cc

index 677ae4b1d4266211a5a4c73a907761466942964e..1d69ee4f3fee4f3806120b53daa41d9dfe854b42 100644 (file)
@@ -6117,18 +6117,23 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector<string>& cmd, buffe
       }
     }
 
-    uint64_t rate = (double)count / (end - start);
+    double elapsed = end - start;
+    double rate = count / elapsed;
+    double iops = rate / bsize;
     if (f) {
       f->open_object_section("osd_bench_results");
       f->dump_int("bytes_written", count);
       f->dump_int("blocksize", bsize);
-      f->dump_unsigned("bytes_per_sec", rate);
+      f->dump_float("elapsed_sec", elapsed);
+      f->dump_float("bytes_per_sec", rate);
+      f->dump_float("iops", iops);
       f->close_section();
       f->flush(ds);
     } else {
       ds << "bench: wrote " << byte_u_t(count)
         << " in blocks of " << byte_u_t(bsize) << " in "
-        << (end-start) << " sec at " << byte_u_t(rate) << "/sec";
+        << elapsed << " sec at " << byte_u_t(rate) << "/sec "
+        << si_u_t(iops) << " IOPS";
     }
   }