本项目内置了性能测试脚本ngxway_benchmark
,提供了QPS、耗时、内存、CPU等观测指标。
- 压测主要基于
ab
工具实现。如果在您的机器上未安装ab
工具,请先 安装ab工具 。
在启动本项目后,使用以下命令即可开始性能测试。
bash bin/ngxway_benchmark api
开始运行时,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个请求后结束
在运行过程中,命令会也会显示实时压测信息。
在完成测试后,系统会在项目根目录的logs
文件夹下生成{NGXWAY_BASE_PATH}/logs/benchmark.html
测试报告文件。
当您在Mac系统上操作时,系统自动在Chrome浏览器中打开测试报告。如果您的系统不是Mac或者未正常打开测试报告,手动打开查看即可。
在8C16G
机器下,不进行额外的优化,ngxway网关服务的QPS浮动在3w~6w
之间,平均5W
。
除了测试ngxway性能外,还对/example/
目录下的goserver
/nginx
/openresty
三个不同的纯净版(无任何修改优化)服务进行了多次不同的性能对比,主要有以下结论。