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 配置问题,但显然不是。我无法确定为什么结果之间存在如此巨大的差异,我希望有人能提供一些见解。
这是正常的吗?我的服务器上有什么配置错误吗?
您的测试速度减慢得如此惊人,因为您处于远程位置,并且您在请求延迟方面遇到了测试瓶颈。
吞吐量是这里的一个问题(客户端到服务器的链接有多快),但我看到的主要问题是并发性设置为 1 - 这意味着在发送下一个请求之前,ab
正在等待每个请求完成。
正如它所说,它针对Time per request: 125.020 [ms] (mean)
每个请求。由于 HTTP keep-alive 默认情况下也是禁用的ab
,我猜测服务器的往返时间ping
约为 60 毫秒?
尝试一下ab -n 100 -k -c 10
- 它不会消除所有延迟,但它应该将每个请求的时间减少一半,并将所有并发的平均时间减少 10 倍 - 完成测试的速度可能会快 20 倍。