diff --git a/app.js b/app.js index f432a617..aee614d2 100755 --- a/app.js +++ b/app.js @@ -33,7 +33,15 @@ var Windshaft = require('windshaft'); var serverOptions = require('./lib/cartodb/server_options'); ws = CartodbWindshaft(serverOptions); + +// Maximum number of connections for one process +// 128 is a good number if you have up to 1024 filedescriptors +// 4 is good if you have max 32 filedescriptors +// 1 is good if you have max 16 filedescriptors +ws.maxConnections = global.environment.maxConnections || 128; + ws.listen(global.environment.port, global.environment.host); + ws.on('listening', function() { console.log("Windshaft tileserver started on " + global.environment.host + ':' + global.environment.port); }); diff --git a/cluster.js b/cluster.js index d5501d17..74f7361a 100755 --- a/cluster.js +++ b/cluster.js @@ -36,6 +36,9 @@ var serverOptions = require('./lib/cartodb/server_options'); var ws = CartodbWindshaft(serverOptions); +// Maximum number of connections for one process (see apps.js) +ws.maxConnections = global.environment.maxConnections || 128; + //.use(cluster.logger('logs')) //.use(cluster.stats()) //.use(cluster.pidfiles('pids')) diff --git a/config/environments/development.js.example b/config/environments/development.js.example index 8d5bb5a9..27509b2a 100644 --- a/config/environments/development.js.example +++ b/config/environments/development.js.example @@ -2,6 +2,9 @@ var config = { environment: 'development' ,port: 8181 ,host: '127.0.0.1' + // Maximum number of connections for one process + // 128 is a good value with a limit of 1024 open file descriptors + ,maxConnections:128 // idle socket timeout, in miliseconds ,socket_timeout: 600000 ,enable_cors: true diff --git a/config/environments/production.js.example b/config/environments/production.js.example index fb9ef4b3..5d73f79e 100644 --- a/config/environments/production.js.example +++ b/config/environments/production.js.example @@ -2,6 +2,9 @@ var config = { environment: 'production' ,port: 8181 ,host: '127.0.0.1' + // Maximum number of connections for one process + // 128 is a good value with a limit of 1024 open file descriptors + ,maxConnections:128 // idle socket timeout, in miliseconds ,socket_timeout: 600000 ,enable_cors: true diff --git a/config/environments/staging.js.example b/config/environments/staging.js.example index dedb5001..366401e2 100644 --- a/config/environments/staging.js.example +++ b/config/environments/staging.js.example @@ -2,6 +2,9 @@ var config = { environment: 'production' ,port: 8181 ,host: '127.0.0.1' + // Maximum number of connections for one process + // 128 is a good value with a limit of 1024 open file descriptors + ,maxConnections:128 // idle socket timeout, in miliseconds ,socket_timeout: 600000 ,enable_cors: true diff --git a/config/environments/test.js.example b/config/environments/test.js.example index 096acb03..a9db586f 100644 --- a/config/environments/test.js.example +++ b/config/environments/test.js.example @@ -2,6 +2,9 @@ var config = { environment: 'test' ,port: 8888 ,host: '127.0.0.1' + // Maximum number of connections for one process + // 128 is a good value with a limit of 1024 open file descriptors + ,maxConnections:128 // idle socket timeout, in miliseconds ,socket_timeout: 600000 ,enable_cors: true