首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx静态文件服务10 10Gbps服务器的性能问题

Nginx静态文件服务10 10Gbps服务器的性能问题
EN

Stack Overflow用户
提问于 2014-09-06 09:08:15
回答 2查看 4.2K关注 0票数 2

我使用Nginx在专用服务器上提供静态文件。服务器没有网站,它只是一个文件下载服务器。文件大小从MB到GBs不等。

以前,我在unmetered.com有8台专用服务器,每台服务器有500 Mbps。他们每个人的表演都很出色。

我想从FDCServers买一台10 10Gbps的服务器。因为一个服务器比多个服务器更容易管理。

以下是服务器的规范:

双XeonE5-2640(15米缓存,2.50 GHz,7.20 GT/s Intel QPI) - 24核128 GB RAM 10 Gbit/s网络未计量Ubuntu 14.04 LTS 1.5 TB SATA

但是我的新的巨型服务器的速度不会超过500到600 Mbps。我安装了nload来监控流量和上传/下载速度。它的报告与以前的unmetered.com服务器几乎相同。

然后我想这可能是由于SATA硬盘的读速率限制所致。

所以我在新的强大服务器上购买并安装了3×240 GB的SSD驱动器。

我把文件转移到SSD驱动器,并下载了它作为测试用途。速度还是不好。我只有250到300 Kbps。而它应该给我至少2 2Mbps (这是我放置在Nginx配置文件中的每个IP的速度限制)。

然后我搜索了千兆位以太网调优设置。找到两个需要为10 10Gbps网络进行调优的sysctl设置。

138.html

我实现了它们,但吞吐量仍然与我以前的500 my服务器相同。

请您帮助提高此服务器的网络吞吐量。我问了FDCServer支持小组,他们确认他们的服务器可以轻松地给出3到5 Gbps,他们无法帮我调优。

经过所有的调整和设置,我最多只能得到700 most。

如果你需要更多细节,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-10 06:15:36

执行测试内存:

适用于DDR3 1333 for PC10600

代码语言:javascript
复制
$ dd if=/dev/zero bs=1024k count=512 > /dev/null
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 0.0444859 s, 12.1 GB/s

测试磁盘io:

代码语言:javascript
复制
$ pv ./100MB.bin > /dev/null
 100MiB 0:00:00 [3.36GiB/s] [=================================================================================================================================================================================>] 100%

使用帮助管道测试cpu速度:

代码语言:javascript
复制
$ dd if=/dev/zero bs=1024k count=512 2> /dev/null| pv > /dev/null
 512MiB 0:00:00 [2.24GiB/s] [   <=>                                                                                                                                                                                             ]

从本地主机下载nginx的速度应该是~1.5-2GB/s。

摩擦:

代码语言:javascript
复制
$ wget -O /dev/null  http://127.0.0.1/100MB.bin
--2014-12-10 09:08:57--  http://127.0.0.1:8080/100MB.bin
Connecting to 127.0.0.1:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 104857600 (100M) [application/octet-stream]
Saving to: ‘/dev/null’

100%[=======================================================================================================================================================================================>] 104,857,600 --.-K/s   in 0.06s   

2014-12-10 09:08:57 (1.63 GB/s) - ‘/dev/null’ saved [104857600/104857600]

检查这个解决方案。

移除线条:

代码语言:javascript
复制
output_buffers 1 512k;
aio on;
directio 512;

和改变

代码语言:javascript
复制
sendfile    off;
tcp_nopush  off;
tcp_nodelay off;

代码语言:javascript
复制
sendfile    on;
tcp_nopush  on;
tcp_nodelay on;

祝好运

票数 5
EN

Stack Overflow用户

发布于 2014-09-06 09:38:31

我认为你需要分开问题,独立测试来确定真正的问题--如果是网络的话,猜测它是磁盘并花费数百或数千美元在新磁盘上是没有用的。你有太多的变量不能随意改变--你需要分而治之。

1)要测试磁盘,可以使用磁盘性能工具或好的旧dd来测量吞吐量(以字节/秒为单位)和以毫秒为单位的延迟。从磁盘读取数据块并写入/dev/null以测试读取速度。从/dev/zero读取数据块并写入磁盘以测试写入速度--如果需要的话。

顺便问一下,您的磁盘是RAIDed吗?为了几个控制员而分裂?

2)为了测试网络,使用nc (a.k.a )。( netcat)并对网络进行震荡,以查看您所测量的吞吐量和延迟。从/dev/zero读取数据块,并使用nc通过网络发送。从网络中读取数据块,并丢弃到/dev/null,以便在另一个方向进行测试。

3)为了测试nginx服务器,在RAMdisk上放置一些静态文件,然后您将独立于物理磁盘。

只有这样你才会知道什么需要调整..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25698654

复制
相关文章

相似问题

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