当然,如果客户端太慢而无法读取服务器的写入内容,数据可以缓冲并增长[1]。
但默认的缓冲区大小是多少?我假设它是在/ proc / sys / net / ipv4 / tcp_rmem和tcp_wmem(假设Linux)中配置的任何内容......
我正在尝试做一些基本的容量规划。如果我有一个512 MB RAM的VPS,我认为OS等人将使用~100MB,我的应用程序有~400MB的任何想做的事情。如果每个连接的客户端(常规旧TCP / IP套接字)默认需要8KB(4KB读取,4KB写入),我有400MB / 8KB = ~50000个客户端的容量。
[1] http://nodejs.org/docs/v0.4.7/api/all.html#socket.bufferSize
答案 0 :(得分:1)
我不知道我的头脑是什么,它可能因平台而异,但这里有你如何找到的结果!
使用此代码:
var net = require('net');
net.createServer(function (socket) {
socket.on('data', function(data) {
console.log('chunk length: ' + data.length);
});
}).listen(function() {
console.log("Server listening on %j", this.address());
});
然后使用脚本在启动时吐出的端口号通过'nc localhost $ port'捕获一个大文件(如ISO),并观察输出以查看最大的块大小。在我的OS X机器上,看起来最大的缓冲区是40960字节,但它可能与您的不同。