Websocket 突破最大長連線
為了測試機器能夠最大的長連線個數,故寫了一個js指令碼,需要用node進行執行
var WebSocketClient = require('websocket').client; var size = 8000;
var index = 0;
setInterval(function () {
if (index < size) {
init();
index++;
}
}, 10);
console.log('begin...');
init = function () {
var client = new WebSocketClient();
let urlIndex = index;
// client.connect('ws://192.168.214.191:8899/ws', "", "");
client.connect('ws://127.0.0.1:21112/OrderWebSocket/'+index, "", "");
// client.connect('ws://192.168.214.181:30004/Invest/OrderWebSocket/' + index, "", "");
client.on('connectFailed', function (error) {
console.log('Connect Error: ' + error.toString());
});
client.count = 0;
client.start = 0;
client.on('connect', function (connection) {
var last = (Number)(new Date().getMilliseconds());
console.log(index + ' Connectedn');
connection.on('error', function (error) {
console.log("Connection Error: " + error.toString());
});
connection.on('close', function (error) {
var second = (new Date().getTime() - client.start)/1000 + 1;
console.log(error + '; Connection Closed:second = '+ second +",count:"+client.count +"--timepercount:"+second/client.count);
});
connection.on('message', function (message) {
if(client.start == 0){
client.start = new Date().getTime();
}
client.count++;
// var now = (Number)(new Date().getMilliseconds());
// // console.log("序號:"+urlIndex+",訊息:"+message.utf8Data+"n"+(now - last));
// last = now;
});
connection.send("hello");
});
};
以上程式碼就是來連線websocket使用的,發現到了1.3w左右連線,就出現Connection Error,解決方案
編輯/etc/security/limits.conf,新增以下兩行程式碼,注意前面有星號
* soft nofile 1000000
* hard nofile 1000000
然後修改臨時埠和IP_TABLE最大跟蹤的TCP連線數有限制,編輯/etc/sysctl.conf,在檔案中新增如下行
net.ipv4.ip_local_port_range = 10000 65535
net.netfilter.nf_conntrack_max = 1000000
net.nf_conntrack_max = 1000000
完畢,現在連線可以到4.5w左右差不多,我的機器會報以下錯誤
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4422/viewspace-2824583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- websocket連線Web
- Android websocket長連線+點對點訂閱AndroidWeb
- WebSocket斷線重連Web
- 雨露均沾的OkHttp—WebSocket長連線的使用&原始碼解析HTTPWeb原始碼
- websocket連線mina被拒絕Web
- 體驗用yarp連線websocketWeb
- 長連線閘道器技術專題(六):石墨文件單機50萬WebSocket長連線架構實踐Web架構
- Vue+WebSocket 實現頁面實時重新整理長連線VueWeb
- MySQL 修改最大連線數MySql
- [譯] Go 實現百萬 WebSocket 連線GoWeb
- Django使用channels實現Websocket連線DjangoWeb
- 長連線和短連線
- HTTP長連線HTTP
- PDO 長連線
- http的長連線和短連線HTTP
- 長連線和短連線的使用
- websocket 建立連線時如何進行授權?Web
- 測試 mysql 的最大連線數MySql
- 使用 WebSocket 客戶端連線 MQTT 伺服器Web客戶端MQQT伺服器
- 【Swoole】從原始碼中查 Websocket 連線問題原始碼Web
- [Swoole] 從原始碼中查 Websocket 連線問題原始碼Web
- 使用websocket連線(對接)asp.net core signalrWebASP.NETSignalR
- 詳解IIS最大併發連線數
- 單臺伺服器最大tcp連線伺服器TCP
- MySQL 預設最大連線數是多少?MySql
- activemq修改IO模型和最大連線數MQ模型
- 輪詢、長輪詢、短連線、長連線區別對比
- JAVA之長連線、短連線和心跳包Java
- WebSocket:從建立連線到關閉的完整流程Web
- 記一次websocket的自動斷開連線Web
- WebSocket系列之如何建立和維護可靠的連線Web
- 基於 Apaache 的 laravel-websocket SSL配置(wss連線)LaravelWeb
- 伺服器開啟遠端連線超出了最大允許連線數伺服器
- HTTP長連線、短連線究竟是什麼?HTTP
- 12、Swoole 中 TCP、UDP 和長連線、短連線TCPUDP
- Jtti講解Linux最大連線數有多大?JttiLinux
- 菜鳥學網路之 —— 長連線和短連線
- Mysql關於長連線短連線優劣比較MySql