全新安装的 NGINX 每秒请求数非常低

全新安装的 NGINX 每秒请求数非常低

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

AB -n 100 本地运行:

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

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

AB -n 100 远程运行(从两台不同的机器尝试,一台是 Windows 7,另一台是 Mac OS 10.7):

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

连接时间(毫秒)
最小平均值[+/-标准差] 中位数 最大值
连接: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 配置问题,但显然不是。我无法确定为什么结果之间会有如此大的差异,希望有人能提供一些见解。

这是正常的吗?我的服务器配置有误吗?

答案1

由于您处于远程状态,所以您的测试速度非常慢,并且请求延迟成为了测试的瓶颈。

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

正如它所说,它正在处理Time per request: 125.020 [ms] (mean)每个请求。由于默认情况下 HTTP 保持活动ab也是禁用的,我猜想您在ping服务器时获得的往返时间约为 60ms?

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

相关内容