应用级服务发现基准测试
1 基准测试结论
与 2.x 版本相比,Dubbo3 版本
- 显著提高了服务发现资源利用率。
- 与接口级服务相比,发现单机常驻内存降低50%,地址变更期间GC消耗量级降低(百次->十几次)
- 对比应用级服务,发现单机常驻内存降低75%,GC次数趋近于0
以下是详细的压测流程和数据
2 应用级服务发现(地址推送链路)
这部分压测数据由工行Dubbo团队基于内部生产数据给出,压测流程模拟了“生产环境地址+zookeeper”的服务发现架构。
2.1 环境
| | 描述 | | ———— | ———————————— ———————— | | 压测数据 | 提供者
500个运行实例✖️8接口✖️5协议,即每个提供者向注册中心注册40个URL,共计20000个URL,每个URL长度约为1k字符。
注册中心
2个独立的zookeeper注册中心,服务提供者和消费者采用并行配置。
消费者
配置1c2g,xmx=768,开启GC,从2个注册中心订阅,每5秒调用一次服务。运行20小时。 | | 压测环境 | Java版本“1.8.0”
Java(TM) SE Runtime Environment (build pxa6480sr3fp12-20160919_01(SR3 FP12))
IBM J9 VM (Build 2.8, JRE 1.8 .0 Linux amd64-64 Compressed References 20160915_318796, JIT enabled, AOT enabled) |
2.2 数据分析
图1 服务发现模型内存使用量变化
- Dubbo3接口级服务发现模型,常驻内存相比2.x版本降低约50%
- Dubbo3应用级服务发现模型,常驻内存相比2.x版本降低约75%
图2 服务发现模型GC变化
- Dubbo3接口级服务发现模型,相比2.x版本YGC次数显著下降,从几百次下降到十几
- Dubbo3应用级服务发现模型,相比2.x版本FGC次数显著下降,从几百次下降到0
上次修改时间:2023 年 1 月 2 日: 增强英文文档 (#1798) (95a9f4f6c1c)