首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS EC2 t2.micro上运行Nodejs socket.io时内存泄漏

在AWS EC2 t2.micro上运行Nodejs socket.io时内存泄漏
EN

Stack Overflow用户
提问于 2016-06-21 12:22:32
回答 1查看 627关注 0票数 2

我想检查t1.micro实例(1 1GB)可以处理的websocket的最大连接数。所以我简单地用nodejs(v6.2.1)和socket.io@1.4.6来检查它。

以下是服务器上的代码:

代码语言:javascript
复制
require("http").globalAgent.maxSockets = Infinity;
var http = require('http').createServer(function(req, res) {});
var io = require('socket.io')(http);
io.on('connection', function(socket){
    socket.on('echo me', function (data) { //receive msg from client
        var msg = {msg: data.msg};
        io.emit('echo me', msg);
        delete msg.msg;
    });
});

var clock = setInterval(function(){
    global.gc();
}, 2000);

http.listen(3000, function(){
    console.log('listening on *:3000');
});

和客户端上的代码

代码语言:javascript
复制
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script type="text/javascript">
var n = 20;
var socket = [], id = [];
for(var i = 0; i < n; ++i){
    socket[i] = io('http://aws_ip_address');
    socket[i].on('connect', function(){            
        id.push(this.io.engine.id);
        console.log('Connected to Server. My name is ');
    });
    socket[i].on('echo me', function(data){ //receive message from server
        console.log(data.msg);
    });
}
var inv = setInterval(function(){
    sendEchoToServer();
}, 1000); //1 second

function sendEchoToServer(){
    for(var i = 0; i < n; ++i){
        var msg = 'My name is ' + id[i] + ' with msg: ' + Math.random();
        socket[i].emit('echo me', {msg: msg});
    }
}
</script>

我遇到的问题是。当我在客户端打开10个选项卡(200个连接)时,内存以分钟为单位增加。如果我打开350个连接,服务器不能在5分钟内处理(操作系统会杀死它)。CPU达到100%。

我希望它可以处理超过500个连接,这可能吗?在进阶时谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-06-21 18:34:39

您可以更改节点中的内存处理,使其更具侵略性。

有关可用选项的更多信息:https://gist.github.com/listochkin/10973974

代码语言:javascript
复制
node --expose-gc --optimize_for_size --max_old_space_size=460 --gc_interval=100 app.js
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37935552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档