Search code examples
node.jswindowsexpresslimitconnection

nodejs express windows max connections setting


Where to set max connections for nodejs(for using express' get) in windows 10? Is it related to max files(descriptors) setting in linux? Is there a windows version of that setting? Preferably a setting in nodejs so it will be compatible when migrated to unix?

I suspect loadtest module gives error because of this setting when over 2000 concurrent connections to attack my server program that uses express and keeps connections in a queue to be processed later. Loadtest finishes normally for 200 concurrent connections(-c 200 in command line). Also when I don't keep connections in a queue and if operation in get is simple("response.end('hello world')"), it doesn't give error for -c 2000 maybe it finishes a work before other starts so its not 2000 concurrent really, only queued version has 2000 concurrency?

I'm not using http module but I am handling xlmhttprequest sent from clients on serverside express module's get function.

Maybe desktop version windows os wasn't developed with server apps in mind so it doesn't have a setting for max connections, max file accesses and related variables has been hardcoded in it?


Solution

  • To answer one part of your question, for max open file there is _setmaxstdio, see:

    Maybe you can write a wrapper that changes this and starts your Node program.

    As for the general question of max open connections, this is what I found about some older Windows:

    It talks about changing the config of:

    [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
    

    TcpNumConnections = 0x00fffffe (Default = 16,777,214)

    [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]
    

    MaxUserPort = 5000 (Default = 5000, Max = 65534)

    See also other related parameters in the above link. I don't know if the names of the config values changed in more recent versions of Windows but HKEY_LOCAL_MACHINE System CurrentControlSet Services Tcpip Parameters is something that I would search for if increasing the open files limit is not enough.

    For a comparison, here is how I increase the number of concurrent Node/Express connection in Linux.