javascriptcometnode.jsfile-descriptorevented-io

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


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


Solution

  • Hey Joey! I was looking for a unix solution that would help me figure out how many open connections at a given moment anytime on my machine. The reason was my server was not able to handle requests after a certain number of connections. And figured that my machine can handle only 1024 open connections at a time i.e., the ulimit file descriptor value which defaults to 1024. I have modified this value by setting ulimit -n that suits my requirement.

    So to check the open connections I used lsof that gives me the list of open files and figured how many connections are open via each port I was using.