我的應用程序已經開始接收越來越多的流量,現在有幾天我正在打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千連接?
這裏的任何想法?我想出了什麼嘗試的想法。