You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by iv...@apache.org on 2018/02/09 14:23:51 UTC

[bookkeeper] branch master updated: Entry count parameters for BenchBookie

This is an automated email from the ASF dual-hosted git repository.

ivank pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 062525c  Entry count parameters for BenchBookie
062525c is described below

commit 062525cb70ff1c1f7cb53d8b197bc6be651deec7
Author: Ivan Kelly <iv...@apache.org>
AuthorDate: Fri Feb 9 15:23:45 2018 +0100

    Entry count parameters for BenchBookie
    
    So that they can be added in the test, to make the test run faster and
    not timeout in CI and ruin an otherwise good test run.
    
    Author: Ivan Kelly <iv...@apache.org>
    
    Reviewers: Enrico Olivelli <eo...@gmail.com>
    
    This closes #1136 from ivankelly/bench-flake
---
 .../org/apache/bookkeeper/benchmark/BenchBookie.java | 20 +++++++++++---------
 .../apache/bookkeeper/benchmark/TestBenchmark.java   |  5 ++++-
 2 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchBookie.java b/bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchBookie.java
index 4506091..08f548c 100644
--- a/bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchBookie.java
+++ b/bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchBookie.java
@@ -130,6 +130,9 @@ public class BenchBookie {
         options.addOption("port", true, "Port of bookie to benchmark (default 3181)");
         options.addOption("zookeeper", true, "Zookeeper ensemble, (default \"localhost:2181\")");
         options.addOption("size", true, "Size of message to send, in bytes (default 1024)");
+        options.addOption("warmupCount", true, "Number of messages in warmup phase (default 999)");
+        options.addOption("latencyCount", true, "Number of messages in latency phase (default 5000)");
+        options.addOption("throughputCount", true, "Number of messages in throughput phase (default 50000)");
         options.addOption("help", false, "This message");
 
         CommandLineParser parser = new PosixParser();
@@ -145,6 +148,9 @@ public class BenchBookie {
         int port = Integer.parseInt(cmd.getOptionValue("port", "3181"));
         int size = Integer.parseInt(cmd.getOptionValue("size", "1024"));
         String servers = cmd.getOptionValue("zookeeper", "localhost:2181");
+        int warmUpCount = Integer.parseInt(cmd.getOptionValue("warmupCount", "999"));
+        int latencyCount = Integer.parseInt(cmd.getOptionValue("latencyCount", "5000"));
+        int throughputCount = Integer.parseInt(cmd.getOptionValue("throughputCount", "50000"));
 
         EventLoopGroup eventLoop;
         if (SystemUtils.IS_OS_LINUX) {
@@ -170,7 +176,6 @@ public class BenchBookie {
         LatencyCallback lc = new LatencyCallback();
 
         ThroughputCallback tc = new ThroughputCallback();
-        int warmUpCount = 999;
 
         long ledger = getValidLedgerId(servers);
         for (long entry = 0; entry < warmUpCount; entry++) {
@@ -188,9 +193,8 @@ public class BenchBookie {
 
         ledger = getValidLedgerId(servers);
         LOG.info("Benchmarking latency");
-        int entryCount = 5000;
         long startTime = System.nanoTime();
-        for (long entry = 0; entry < entryCount; entry++) {
+        for (long entry = 0; entry < latencyCount; entry++) {
             ByteBuf toSend = Unpooled.buffer(size);
             toSend.resetReaderIndex();
             toSend.resetWriterIndex();
@@ -203,15 +207,13 @@ public class BenchBookie {
             lc.waitForComplete();
         }
         long endTime = System.nanoTime();
-        LOG.info("Latency: " + (((double) (endTime - startTime)) / ((double) entryCount)) / 1000000.0);
-
-        entryCount = 50000;
+        LOG.info("Latency: " + (((double) (endTime - startTime)) / ((double) latencyCount)) / 1000000.0);
 
         ledger = getValidLedgerId(servers);
         LOG.info("Benchmarking throughput");
         startTime = System.currentTimeMillis();
         tc = new ThroughputCallback();
-        for (long entry = 0; entry < entryCount; entry++) {
+        for (long entry = 0; entry < throughputCount; entry++) {
             ByteBuf toSend = Unpooled.buffer(size);
             toSend.resetReaderIndex();
             toSend.resetWriterIndex();
@@ -221,9 +223,9 @@ public class BenchBookie {
             bc.addEntry(new BookieSocketAddress(addr, port), ledger, new byte[20],
                         entry, toSend, tc, null, BookieProtocol.FLAG_NONE);
         }
-        tc.waitFor(entryCount);
+        tc.waitFor(throughputCount);
         endTime = System.currentTimeMillis();
-        LOG.info("Throughput: " + ((long) entryCount) * 1000 / (endTime - startTime));
+        LOG.info("Throughput: " + ((long) throughputCount) * 1000 / (endTime - startTime));
 
         bc.close();
         scheduler.shutdown();
diff --git a/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java b/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
index 3f69499..e3b1124 100644
--- a/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
+++ b/bookkeeper-benchmark/src/test/java/org/apache/bookkeeper/benchmark/TestBenchmark.java
@@ -57,7 +57,10 @@ public class TestBenchmark extends BookKeeperClusterTestCase {
         BenchBookie.main(new String[] {
                 "--host", bookie.getSocketAddress().getHostName(),
                 "--port", String.valueOf(bookie.getPort()),
-                "--zookeeper", zkUtil.getZooKeeperConnectString()
+                "--zookeeper", zkUtil.getZooKeeperConnectString(),
+                "--warmupCount", "10",
+                "--latencyCount", "100",
+                "--throughputCount", "100"
                 });
     }
 

-- 
To stop receiving notification emails like this one, please contact
ivank@apache.org.