简述
前面介绍了kong的基本使用以及相关原理,那么接下来,我们需要对kong的性能做一个简单的了解。
性能压测
测试环境
机器类别及IP地址 | 硬件配置 | 操作系统 | 软件配置 | 网络环境 |
---|---|---|---|---|
kong服务 | 1核2G/2核2G/2核4G/4核2G/4核4G | Alpine Linux 3.13 | kong:2.5.0 | 阿里云ack环境 |
测试机 | CPU:4CPU8G 带宽:1M 资源组:1台4CPU8G,1台2CPU4G VUM:100w |
Euler OS系统 | v1.19.10-r0 | 华为云 云性能测试服务CPTS |
测试思路
- 压测 使用kong代理;
- 压测 使用kong代理并使用插件(file-log)的场景;
- 压nginx与kong的区别(其他变量一样);
- 压规格,看内存影响还是cpu影响,以及最后得出一个软件瓶颈的最佳规格(其他变量一样);
- 压并发数,看是否有影响,以及错误率,qps变化(其他变量一样);
- 压引入lua业务与没引入lua业务的场景,看业务对其影响大不大(其他变量一样);
测试结果
测试报告量巨大,为了看起来明了,这里只写了结论(数据量实在太多了,而且markdown对表格的支持不太好,显示效果也不好,这里仅放置模板)
模板
此处RPS可以理解为QPS;
场景分别为:
1核2G1M带宽1副本
1核2G1M带宽2副本
1核2G2M带宽1副本
1核4G1M带宽1副本
2核2G1M带宽1副本
2核4G1M带宽1副本
2核4G1M带宽2副本
…
等等
以下是表格模板:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XznnPrZn-1643010571992)(kong笔记——kong、nginx性能压测对比.assets/006M2jFvgy1gyot7jtqxij31bb0ah44q.jpg)]
结论
-
kong架构+lua业务+file-log插件:qps最高的配置规格为4核2G,qps大约在 9000左右波动;
-
kong架构代理:qps最高的配置规格为4核2G**,qps大约在1.2w左右波动;
-
nginx架构+lua业务+nginx反向代理:qps最高的配置规格为4核2G,qps大约在 1.3w左右波动;
这里为什么加了一个nginx反向代理的条件,是因为你使用kong的时候,kong的内部实际上是对你的业务做了一个反向代理,所以为了保证变量一致,采用了nginx代理;
-
nginx架构+lua业务:qps最高的配置规格为4核2G,qps大约在 3w左右波动;
-
两种框架压测时,qps跟cpu核数的提升成正比,与内存的影响较小。
由以上结论可以得出,如果直接访问nginx,qps是3w,而使用kong只有1.2w,再加一个插件时,qps又会降低,说明使用的kong的时候,需要考虑性能,而导致性能下降的原因就是:kong代理,kong插件(这个结论是大量数据压测支撑出来的,不是自己凭空捏造,因为数据量太大,粘贴出来的话,文章的可读性会变的很差);