在网站上同时有多少直播用户。 CPU /存储器/ brandwidth

时间:2016-03-09 23:33:14

标签: html server cpu ram

(假设情景)

我将主持一个非常简单的静态单页html网站。 它只会有一个类似于" Hello world"的简单文本。和一个重定向到另一个网站的按钮(~2kb)。

"你好世界"我的计算机将使用node.js托管网站。 我的问题是......有多少"生活"用户可以处理。意思是那些只是坐在网站上并且每隔约30秒刷新一次的人。让我们说~3万人刷新。这意味着该网站每秒将刷新约1000次。此过程将在约3小时内激活。 这里有哪些因素? 我的CPU?内存?带宽?

(假设设置)

与顶部路由器的100 / 10mb稳定光纤连接。

16GB RAM。

i7-2600k 3.4GHz。

2 个答案:

答案 0 :(得分:0)

让我们计算一下:
1000次刷新/秒* 2kByte = 2MByte /秒=> 16MBit /秒+请求的比特开销=> ~20MBit

所以你的10MBit连接会有点太慢,但在这种情况下100MBit就足够了。

如果您只有一个静态页面,我认为RAM或CPU电源不会出现问题。

但我应该补充一点,我并没有真正的经验。

答案 1 :(得分:0)

这完全取决于您的Hello World应用程序正在做什么。如果它为您的用户解决微分方程,它将使用大量的CPU。如果它作为流媒体电影服务器运行,带宽和内存使用将是重要的。下面的hello world应用程序在双核VM上使用Apache基准测试程序进行了测试,内存大约为2GB,可以大致了解人们的预期。

var http = require('http');

http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<p>Hello World</p>');
  res.end();
}).listen(8080);

正如您所看到的,这个程序非常基础,没有框架也没有逻辑运行。其中任何一个都会显着改变这些结果。 -n参数是测试中的总请求数,-c参数显示每秒的数量。

ab -n 30000 -c 1000 <URL>

请注意,文档长度为18个字节。任何增加都会线性扩展你的带宽(所以如果你有一个1kB的html文件,你将会看到大约1kB * 1000 /秒=〜8mbps的带宽,大约80%的上游链路)。因此,缓存非常重要。在每秒处理1000个请求时,节点使用了99%的CPU(因为1000个并发连接可能使其响应能力饱和,因此总是有事情要做)。然而,节点的一个好处是它使用相对较少的内存来实现高并发性,因此它占据了2GB内存使用率的3%左右。

Document Path:          /
Document Length:        18 bytes

Concurrency Level:      1000
Time taken for tests:   5.355 seconds
Complete requests:      30000
Failed requests:        0
Total transferred:      3540000 bytes
HTML transferred:       540000 bytes
Requests per second:    5602.75 [#/sec] (mean)
Time per request:       178.484 [ms] (mean)
Time per request:       0.178 [ms] (mean, across all concurrent requests)
Transfer rate:          645.63 [Kbytes/sec] received

希望在设计应用程序时这很有用!