strict-http-agent
Node.js HTTP Agent with strict queued requests limit
Main goal is to prevent this scenario:
Node process sending requests to some slow service. By default after reaching maxSockets, new requests are coming into unlimited queue (javascript array). There are timeouts for requests which are in use, but not for those in queue. After time there will be huge queue in memory. This module prevents this situation by limiting queue size (fast way) and/or ttl for queues requests (slower).
Requires Node.js>=0.10 or io.js
Usage
HTTP get example:
var strictAgent = ;...var myAgent = maxSockets: 10 queueLimit: 100000 queueTTL: 1000 ; var options = host: 'localhost' port: 8000 path: '/' agent: myAgent; var req = http;
queueLimit
Specifies max number of requests in queue
queueTTL
Specified max ttl for queued requests
Testing
npm test
Load testing
Requirements:
Running tests:
- In load_tests folder run
vagrant up
. It will download VM, install all requirements. - In load_tests folder you can change siege testing params in run.sh and .siegerc after that just run
./run.sh
. Every test will run on reloaded VM. For lite run use run-lite.sh to not reload VM every time. - After all tests results will be in run_log in csv format.
Play around
- In tools folder there are simple http server catcher.js and simple implementation of requests: demo.js.