开发者社区> 墨航> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

OpenAPI (Kong) Benchmark

简介:
+关注继续查看

测试用API基准性能测试

API编写

为了测试API Gateway的性能,我们首先要有一个测试用API。
用Go语言,采用基于fasthttp的iris框架,编写一个简单的HelloWorld Server。如下所示:


  1. package main
  2. import "github.com/kataras/iris"
  3. func main() {
  4. api := iris.New()
  5. api.Get("/hi", hi)
  6. api.Listen(":8080")
  7. }
  8. func hi(ctx *iris.Context){
  9. ctx.Write("Hi %s", "iris")
  10. }

测试API是否可用


  1. $ curl http://127.0.0.1:8080/hi
  2. Hi iris

Bench测试用API


  1. 并发 RPS TPR
  2. 1 21391.66 0.047
  3. 2 29864.03 0.067
  4. 3 63258.51 0.047
  5. 4 73325.61 0.055
  6. 5 80241.88 0.062
  7. 8 99025.29 0.081
  8. 10 105148.38 0.095
  9. 16 99378.09 0.161
  10. 20 99064.04 0.202
  11. 25 96601.46 0.259
  12. 30 94350.84 0.318
  13. 32 97307.03 0.329
  14. 40 93983.53 0.426
  15. 50 95480.85 0.524
  16. 64 94770.72 0.675
  17. 80 90437.65 0.885
  18. 100 93304.23 1.072
  19. 120 91837.84 1.307
  20. 128 91585.78 1.398
  21. 150 92307.99 1.625
  22. 180 92827.5 1.939
  23. 200 93157.63 2.147
  24. 500 93920.95 5.324
  25. 1000 90560.25 11.042
  26. 2000 73470.44 27.222
  27. 5000 72345.1 69.113
  28. 10000 70525.77 141.792

结论是,在合理的并发数下,QPS基本可以稳定在9W左右。最佳并发数为10。
对于测试,该API不可能成为瓶颈。

单实例API网关

注册为OpenAPI


  1. curl -X POST http://localhost:8888/apis/ \
  2. -d "name=overseas_index" \
  3. -d "upstream_url=http://10.182.20.100:8080/" \
  4. -d "request_path=/test" \
  5. -d "strip_request_path=true"
  6. {"upstream_url":"http:\/\/10.182.20.100:8080\/","request_path":"\/test","id":"36cc77c7-89cd-49d3-b153-e79c632ccc44","created_at":1471509004000,"preserve_host":false,"strip_request_path":true,"name":"overseas_index"}

测试OpenAPI连通情况


  1. $ curl http://127.0.0.1/test/hi
  2. Hi iris

从同机房通过API Gateway进行测试:


  1. c n rps tpr
  2. 50 100000 13780.78 3.628
  3. 100 100000 16499.59 6.061
  4. 200 100000 15778.13 12.676
  5. 500 100000 14109.51 35.437

使用OpenAPI,添加key-auth权限认证,ACL,从外网接口访问:


  1. c n rps tpr
  2. 50 100000 14006.29 3.570
  3. 100 100000 16087.16 6.216
  4. 200 100000 16033.10 12.474
  5. 500 100000 14080.34 35.511

(3 Nginx Node, 3x24 EchoServer)

在没有进行任何优化的条件下,峰值约16000 QPS。应对目前Cplus需求非常充裕。但对于DMP还需要进一步优化。优化空间很大。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如果你想写自己的Benchmark框架
如果你想写自己的Benchmark框架
27 0
主流开源分布式图数据库 Benchmark
选型一款能够满足美团实际业务需求的图数据库产品,是建设图存储和图学习平台的基础。 在本文中美团 NLP 团队对主流的几款图数据库就【数据导入】、【数据写入】、【数据查询】作了评测
1590 0
阿里云基于OSS的云上统一数据保护方案2.0正式发布
数字经济时代,云已经成为数据经济IT新常态。那么上云之后,数据还安全吗?近日,阿里云正式发布基于OSS的云上统一数据保护方案2.0,针对业务上云后数据保护所面临的挑战,提供多层次、全方位的数据保护解决方案,让您业务上云,数据无忧。
974 0
Golang 基准测试(Benchmark)
在程序中,基准测试,是一种测试代码性能的方法;比如有一个问题你有多种不同的方案,你想选择一种性能最好的方案,那么你就需要基准测试。
2814 0
深度学习图像分割(一)——PASCAL-VOC2012数据集(vocdevkit、Vocbenchmark_release)详细介绍
以后博客更新内容都会在oldpan.me中 PASCAL-VOC2012数据集介绍官网:http://host.robots.
3409 0
+关注
26
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载