使用全新的 NGINX 安装,每秒请求非常低

Ada*_*ert 5 performance nginx ab

全新安装 nginx 后,我在运行 apache 基准测试时获得了这些结果,我觉得这很奇怪。获取的页面是nginx安装的默认静态index.html测试页面。在本地运行 ab 每秒的请求量非常高,但远程则要低得多。我已经通过这些测试暂时禁用了我的防火墙。

AB -n 100 在本地运行:

文件路径:/
文件长度:3698 字节

并发级别:1
测试时间:0.21347 秒
完成请求:100
失败的请求:0
写入错误:0
总传输量:391000 字节
传输的 HTML:369800 字节
每秒请求数:4684.50 [#/sec](平均值)
每个请求的时间:0.213 [ms](平均值)
每个请求的时间:0.213 [ms](平均,跨所有并发请求)
传输速率:17847.94 [Kbytes/sec] 接收

AB -n 100 远程运行(在两台不同的机器上尝试过,一台是 windows 7,另一台是 mac os 10.7):

 
并发级别:1
测试时间:12.502 秒
完成请求:100
失败的请求:0
写入错误:0
总传输量:391000 字节
传输的 HTML:369800 字节
每秒请求数:8.00 [#/sec](平均值)
每个请求的时间:125.020 [ms](平均值)
每个请求的时间:125.020 [ms](平均值,一个
传输速率:30.54 [Kbytes/sec] re

连接时间(毫秒)
最小平均值[+/-sd] 中值最大值
连接:38 43 1.6 42 56
处理:78 82 2.1 82 97
等待:38 43 1.3 43 49
总计:121 125 2.6 125 139

我们所有的网站都在 apache 上运行,它也有同样的问题。我安装了 nginx 以尝试查看是否是 apache 配置问题,但显然不是。我无法确定为什么结果之间存在如此巨大的差异,我希望有人能提供一些见解。

这是正常的吗?我的服务器上有什么配置错误吗?

Sha*_*den 3

您的测试速度减慢得如此惊人,因为您处于远程位置,并且您在请求延迟方面遇到了测试瓶颈。

吞吐量是这里的一个问题(客户端到服务器的链接有多快),但我看到的主要问题是并发性设置为 1 - 这意味着在发送下一个请求之前,ab正在等待每个请求完成。

正如它所说,它针对Time per request: 125.020 [ms] (mean)每个请求。由于 HTTP keep-alive 默认情况下也是禁用的ab,我猜测服务器的往返时间ping约为 60 毫秒?

尝试一下ab -n 100 -k -c 10- 它不会消除所有延迟,但它应该将每个请求的时间减少一半,并将所有并发的平均时间减少 10 倍 - 完成测试的速度可能会快 20 倍。