我的应用程序已经开始接收越来越多的流量,现在有几天我正在打1000个并发连接。在那个时候,由于某种原因,我的服务器停止接受我的连接,他们只是关闭了。NodeJS停止接受1000个并发连接后的新连接
的NodeJS
服务器的背后是HAProxy
服务器,所以我可以的HAProxy
的统计页面,当我我得到Resp errors
确切的错误对各地1000个并发连接上看到的是:
“期间,连接重置转移“
这使我相信,NodeJS
只是拒绝新的连接。在这一点上,我开始研究如何了连接该节点可以处理,所以我做了以下内容:
将此添加到我的sysctl.cfg
fs.file-max = 2097152
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
net.core.somaxconn = 32768
net.core.netdev_max_backlog = 32768
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_nonlocal_bind = 1
的方式,我开始我的节点服务器是这样的:
Login to the EC2 from my terminal on Mac OSX, and write:
sudo su
cd node/
ulimit -n 10000
forever start server.js
哦,注意,HAProxy的服务器上我在sysctl.cfg
相同entires,也有调升maxconn
到128000
林相当肯定这里的问题是节点服务器,但不明白为什么节点仍然似乎最大1000千连接?
这里的任何想法?我想出了什么尝试的想法。