diff options
4 files changed, 23 insertions, 5 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java index 0517d42659d..d6d7603f54a 100755 --- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java +++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java @@ -144,7 +144,7 @@ public class RPCNetworkParams { return this; } - RPCNetworkParams setNumTargetsPerSpec(int numTargetsPerSpec) { + public RPCNetworkParams setNumTargetsPerSpec(int numTargetsPerSpec) { this.numTargetsPerSpec = numTargetsPerSpec; return this; } diff --git a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java index 9a5fbc50e2a..98394a56694 100644 --- a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java +++ b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java @@ -34,6 +34,7 @@ class FeederParams { private boolean benchmarkMode = false; private int numDispatchThreads = 1; private int maxPending = 0; + private int numConnectionsPerTarget = 2; private List<InputStream> inputStreams = new ArrayList<>(); FeederParams() { @@ -82,6 +83,11 @@ class FeederParams { return this; } + int getNumConnectionsPerTarget() { return numConnectionsPerTarget; } + FeederParams setNumConnectionsPerTarget(int numConnectionsPerTarget) { + this.numConnectionsPerTarget = numConnectionsPerTarget; + return this; + } boolean isSerialTransferEnabled() { return maxPending == 1; } @@ -109,6 +115,7 @@ class FeederParams { opts.addOption("r", "route", true, "Route for sending messages. default is 'default'...."); opts.addOption("b", "mode", true, "Mode for benchmarking."); opts.addOption("o", "output", true, "File to write to. Extensions gives format (.xml, .json, .vespa) json will be produced if no extension."); + opts.addOption("c", "numconnections", true, "Number of connections per host."); CommandLine cmd = new DefaultParser().parse(opts, args); @@ -118,6 +125,9 @@ class FeederParams { if (cmd.hasOption('m')) { maxPending = Integer.valueOf(cmd.getOptionValue('m').trim()); } + if (cmd.hasOption('c')) { + numConnectionsPerTarget = Integer.valueOf(cmd.getOptionValue('c').trim()); + } if (cmd.hasOption('r')) { route = Route.parse(cmd.getOptionValue('r').trim()); } diff --git a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java index 32e883f171a..2925ea08de9 100644 --- a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java +++ b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java @@ -341,7 +341,7 @@ public class SimpleFeeder implements ReplyHandler { inputStreams = params.getInputStreams(); out = params.getStdOut(); numThreads = params.getNumDispatchThreads(); - mbus = newMessageBus(docTypeMgr, params.getConfigId()); + mbus = newMessageBus(docTypeMgr, params); session = newSession(mbus, this, params.getMaxPending()); docTypeMgr.configure(params.getConfigId()); benchmarkMode = params.isBenchmarkMode(); @@ -462,10 +462,11 @@ public class SimpleFeeder implements ReplyHandler { return out.toString(); } - private static RPCMessageBus newMessageBus(DocumentTypeManager docTypeMgr, String configId) { + private static RPCMessageBus newMessageBus(DocumentTypeManager docTypeMgr, FeederParams params) { return new RPCMessageBus(new MessageBusParams().addProtocol(new DocumentProtocol(docTypeMgr)), - new RPCNetworkParams().setSlobrokConfigId(configId), - configId); + new RPCNetworkParams().setSlobrokConfigId(params.getConfigId()) + .setNumTargetsPerSpec(params.getNumConnectionsPerTarget()), + params.getConfigId()); } private static SourceSession newSession(RPCMessageBus mbus, ReplyHandler replyHandler, int maxPending) { diff --git a/vespa_feed_perf/src/test/java/com/yahoo/vespa/feed/perf/FeederParamsTest.java b/vespa_feed_perf/src/test/java/com/yahoo/vespa/feed/perf/FeederParamsTest.java index a1f84b02317..8682adc0935 100644 --- a/vespa_feed_perf/src/test/java/com/yahoo/vespa/feed/perf/FeederParamsTest.java +++ b/vespa_feed_perf/src/test/java/com/yahoo/vespa/feed/perf/FeederParamsTest.java @@ -84,6 +84,13 @@ public class FeederParamsTest { public void requireThatNumThreadsAreParsed() throws ParseException, FileNotFoundException { assertEquals(1, new FeederParams().getNumDispatchThreads()); assertEquals(17, new FeederParams().parseArgs("-n 17").getNumDispatchThreads()); + assertEquals(17, new FeederParams().parseArgs("--numthreads", "17").getNumDispatchThreads()); + } + @Test + public void requireThatNumConnectionsAreParsed() throws ParseException, FileNotFoundException { + assertEquals(2, new FeederParams().getNumConnectionsPerTarget()); + assertEquals(17, new FeederParams().parseArgs("-c 17").getNumConnectionsPerTarget()); + assertEquals(17, new FeederParams().parseArgs("--numconnections", "17").getNumConnectionsPerTarget()); } @Test |