Skip to content

Latest commit

 

History

History
53 lines (38 loc) · 3.58 KB

benchmark.zh-CN.md

File metadata and controls

53 lines (38 loc) · 3.58 KB

Benchmark

本项目内置了性能测试脚本ngxway_benchmark,提供了QPS、耗时、内存、CPU等观测指标。

依赖安装

  • 压测主要基于ab工具实现。如果在您的机器上未安装ab工具,请先 安装ab工具

1. 如何使用

在启动本项目后,使用以下命令即可开始性能测试。

bash bin/ngxway_benchmark api

2. 测试过程

开始运行时,ngxway_benchmark会在当前机器下,默认执行以下14个测试用例

  • -n 10000 -c 32 :32个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 64 :64个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 128 :128个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 256 :256个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 512 :512个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 1024 :1024个并发请求,完成总计10000个请求后结束
  • -n 10000 -c 1200 :1200个并发请求,完成总计10000个请求后结束
  • -n 100000 -c 32 :32个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 64 :64个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 128 :128个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 256 :256个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 512 :512个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 1024 :1024个并发请求,完成总计100000个请求后结束
  • -n 100000 -c 1200 :1200个并发请求,完成总计100000个请求后结束

在运行过程中,命令会也会显示实时压测信息。

image

3. 测试报告

在完成测试后,系统会在项目根目录的logs文件夹下生成{NGXWAY_BASE_PATH}/logs/benchmark.html测试报告文件。

当您在Mac系统上操作时,系统自动在Chrome浏览器中打开测试报告。如果您的系统不是Mac或者未正常打开测试报告,手动打开查看即可。

image

4. 测试总结

8C16G机器下,不进行额外的优化,ngxway网关服务的QPS浮动在3w~6w之间,平均5W

5、性能对比

除了测试ngxway性能外,还对/example/目录下的goserver/nginx/openresty三个不同的纯净版(无任何修改优化)服务进行了多次不同的性能对比,主要有以下结论。

  • 在等同的测试条件下,ngxway、nginx、openresty测出来的QPS比例为1 : 0.6 : 0.3

  • 在等同的测试条件下,ngxway的性能约占 go test 接口性能的50%~70%左右,也就是说如果在您的机器上 go test 接口的压测可以达到10W的QPS,那么ngxway可以达到5w~7w的QPS

  • Docker的bridge网络模式对服务性能有30%左右的额外损耗,所以如果追求更高性能,请在ngxway.conf配置文件中设置docker_networkhost模式,注意host模式在Mac系统上无法使用。