带HTTP服务器的带宽吞吐量

我想将nginx设置为静态文件(图像和video)的反向代理

任何人都可以分享一些nginx(和其他服务器)的吞吐量统计数据吗? 你认为高端服务器可以处理数百甚至数千兆比特/秒吗? (我知道stream媒体服务器可以,不知道HTTP服务器。)

吞吐量通常受到每秒请求数的限制。 这取决于很多因素。

第一个瓶颈将是存储。 您可以通过使用大量的文件系统caching内存来消除这个瓶颈。

下一个瓶颈将是中断造成的CPU负载。 您将通过使用允许卸载各种任务并configuration中断合并的NIC来解决此问题。

接下来将是nginex CPU使用率。 你将通过扩大(使用更好的CPU),然后水平(增加更多的CPU和服务器)来解决这个问题。

对于所有更改,请执行负载testing并监视所有内容(CPU,I / O,开关负载等)。 确保你将使用一些好的硬件作为testing机器,否则瓶颈可能会成为你的testing机器。

这取决于。 中间请求大小,保持活动连接的数量,文件系统高速caching命中率,NIC驱动器质量以及dirver / OS调整参数都是非常重要的。 文件系统caching是最重要的。

例如,如果您同时向几百个客户端发送同一个500 MB的video副本,并且整个video文件都处于caching状态,则很容易达到10 Gbps。 如果您使用的是数十亿的小图片或JavaScript,并且caching命中率很低,那么您将很幸运可以提供100 Mbps的服务。

和nginx一样好,它可以发送的速度受到读取数据速度有限的限制。 10 Gbps大致为1 GByte / sec。 如果数据集全部来自RAMcaching,那是可行的。 否则,你将会在存储层上遇到瓶颈(除非在RAIDconfiguration中有几个快速的SSD或者大量的旋转锈蚀)。 另外请注意,为了避免Linux下的磁盘访问被阻塞,您需要在每个核心上运行多个nginx工作进程,因为Linux中的asynchronousIO基本上被devise中断了。