Alex Rivera | Logout

How to check the number of open connections in node.js?

Asked 2010-07-09T16:05:35.190
12

I have a machine running node.js (v0.1.32) with a tcp server (tcp.createServer) and a http server (http.createServer). The http server is hit by long polling requests (lasting 50 sec each) from a comet based application on port 80. And there are tcp socket connections on port 8080 from an iphone application for the same purpose.

It was found that the server was not able to handle more connections (especially the tcp connections while the http connections appeared fine!!??) for a while and was normal only after a restart.

For load testing the connections I have created a tcp server and spawned 2000 requests and figured that the connections starting to fail after the max file descriptor limit on machine is reached (default 1024). Which is a really very small number.

So, a novice question here: How do I scale my application to handle more number of connections on node.js and how I handle this issue.

Is there a way to find out how many active connections are there at the moment?

Thanks Sharief

Edit
Report

1 Answer

2

I don't know if there's a built-in way to get the number of active connections with Node, but it's pretty easy to rig something up.

For my comet-style Node app I keep an object that I add connections to as a property. Every X seconds I iterate over that object and see if there are any connections that should be closed (in your case, anything past your 50 second limit).

When you close a connection, just delete that property from your connections object. Then you can see how many connections are open at any time with Object.size(connections)

answered 2010-07-14T14:24:02.853

Your Answer