Skip to content

Commit

Permalink
benchmark: make concurrent requests configurable
Browse files Browse the repository at this point in the history
In http_bench.js, allow the concurrent requests per client
to be configurable.

This also changes the launch of clients to wait until all
forked servers are online. This eliminates spurious error
messages at the start of the run.

PR-URL: #2068
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
Trott committed Jun 30, 2015
1 parent f52d733 commit 05a73c0
Showing 1 changed file with 23 additions and 10 deletions.
33 changes: 23 additions & 10 deletions benchmark/http_bench.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ var options = {
port: 22344,
path: '/',
servers: 1,
clients: 1
clients: 1,
clientConcurrentRequests: 2
};

for (var i = 2; i < process.argv.length; ++i) {
Expand Down Expand Up @@ -44,13 +45,25 @@ function patch(fun) {
function startMaster() {
if (!cluster.isMaster) return startServer();

for (var i = ~~options.servers; i > 0; --i) cluster.fork();
var forkCount = 0;

cluster.on('online', function () {
forkCount = forkCount + 1;
if (forkCount === ~~options.servers) {
var args = [
__filename,
'mode=client',
'clientConcurrentRequests=' + options.clientConcurrentRequests
];
for (var i = ~~options.clients; i > 0; --i) {
var cp = spawn(process.execPath, args);
cp.stdout.pipe(process.stdout);
cp.stderr.pipe(process.stderr);
}
}
});

for (var i = ~~options.clients; i > 0; --i) {
var cp = spawn(process.execPath, [__filename, 'mode=client']);
cp.stdout.pipe(process.stdout);
cp.stderr.pipe(process.stderr);
}
for (var i = ~~options.servers; i > 0; --i) cluster.fork();
}

function startServer() {
Expand All @@ -73,9 +86,9 @@ function startServer() {

function startClient() {
// send off a bunch of concurrent requests
// TODO make configurable
sendRequest();
sendRequest();
for (var i = ~~options.clientConcurrentRequests; i > 0; --i) {
sendRequest();
}

function sendRequest() {
var req = http.request(options, onConnection);
Expand Down

0 comments on commit 05a73c0

Please sign in to comment.