summaryrefslogtreecommitdiffstats
path: root/vespa_feed_perf
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-20 07:48:27 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-05-20 07:48:27 +0200
commit263532db09c029961c58d7e14f9f393231d9c101 (patch)
treeec87f2cb303bae8f7ca0cb72141f9a2ae6516c66 /vespa_feed_perf
parent920585840be54248b6df82fee258be8313274337 (diff)
Add control over #connections
Diffstat (limited to 'vespa_feed_perf')
-rw-r--r--vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/FeederParams.java10
-rw-r--r--vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java9
-rw-r--r--vespa_feed_perf/src/test/java/com/yahoo/vespa/feed/perf/FeederParamsTest.java7
3 files changed, 22 insertions, 4 deletions
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