10/20 / 40Gbps nginx大文件缓存Web服务器[达到20Gbps]
在此问题中,我想找到最好的配置/硬件,以从单个服务器提供40Gbps的速度。 情况 我们有一个视频共享代理服务器,可以从背后的慢速存储服务器上卸载峰值。所有流量仅是HTTP。服务器充当反向代理(未缓存在服务器上的文件)和Web服务器(存储在本地驱动器上的文件)。 当前大约有100TB的文件,并且在后端存储服务器上正在增长。 缓存机制是独立实现的,这个问题与缓存本身无关,因为它运行良好-当前提供14Gbps的速度,仅传递给2Gbps的后端服务器。因此缓存使用率很好。 目标 一台机器即可达到40Gbps甚至更高的吞吐量。 硬件1 硬件:Supermicro SC825,X11SSL-F,Xeon E3-1230v5(4C/8T@3.4GHz),16GB DDR4 RAM,2个Supermicro 10G STGN-i1S(LACP L3 + 4) 固态硬盘:1个512GB三星,2个500GB三星,2个480GB英特尔535、1个240GB英特尔S3500 系统: irqbalancer已停止 每个接口的set_irq_affinity(通过ixgbe驱动程序tarball中的脚本) ixgbe-4.3.15 I / O调度程序的截止日期 iptables为空(卸载模块) 文件系统:XFS Nginx: 发送文件关闭 AIO线程 指令1M tcp_nopush开启 tcp_nodelay在 如图所示,我们能够推动12.5Gbps。不幸的是,服务器没有响应。 有两件事引起了我的注意。第一个是大量的IRQ。在这种情况下,不幸的是我没有来自/ proc / interrupts的图表。第二件事是系统负载过高,我认为这是由于kswapd0仅在使用16G RAM时遇到问题。 硬件2 硬件:Supermicro SC119TQ,X10DRW-i,2个Xeon E5-2609v4(8C/8T@1.70GHz),128GB DDR4 RAM,2个Supermicro 10G STGN-i1S SSD,系统配置与硬件1相同。Nginx是sendfile上的文件(进一步比较aio / …