node.js v0.10.22 を実行しています。次のようなサーバーを作成します。
var net = require('net');
var server = net.createServer(function(socket) {
//stuff
}).listen(8080);
このスクリプトを使用してファイルを実行します。
#!/bin/bash
export PATH=/usr/local/bin:/usr/bin:$PATH
ulimit -Hn 8192
ulimit -Sn 8192
node myserver.js &>/dev/null &
ご覧のとおり、ファイル ハンドルの数 (ハード リミットとソフト リミット) を 8192 に設定しています。しかし、このサーバーへの接続が約 1000 になると、接続できなくなります。telnet から「外部ホストによって接続が閉じられました」というメッセージがすぐに表示されます。
同時接続の最大数を設定するための node.js のドキュメントの net.server にオプションが見つかりません。server.maxConnections がありますが、変更してもこの問題には影響しません。
どの接続制限設定を見落としていますか?