Nacos是一款阿里云开源的注册配置中心产品。MSE团队采用多项技术对Nacos进行优化,以提供比开源自建更高的性能。本文模拟真实的Nacos场景,分别对MSE Nacos和开源自建Nacos常用功能进行压测。您可以参考本文分析报告,在接入MSE Nacos之前进行充分的评估。
测试设计
本次压测涉及到的功能包括:配置发布、配置查询、服务注册、服务查询、变更推送。
MSE Nacos设置
MSE Nacos版本:专业版
网络拓扑:3可用区部署
引擎规格:2C4G
集群节点:3节点
引擎版本:2.3.2.0
网络类型:专有网络
开源Nacos设置
网络拓扑:3可用区
集群节点:3节点
节点规格:2C4G,ecs.e-c1m2.large
Nacos版本:2.3.2
网络类型:专有网络
测试场景说明
集群参数设置:MSE Nacos及开源Nacos均采用默认设置。
测试时长:每个场景压测时长10分钟,结果取平均值。
施压机设置:施压机规格相同,部署同一压测程序,并保证施压机不成为压测瓶颈。
测试数据
配置数据:配置数6千,单个配置大小为10byte。
服务数据:每个提供者包含100byte的metadata数据,每个场景服务提供者数不同。但在同一场景下,服务数、服务提供者数、订阅者数保持一致。
测试流程
分别对MSE Nacos和开源自建Nacos压测接口压测,压到CPU水位接近,记录各接口TPS或QPS。
查询配置:频繁查询一定大小的配置,记录CPU大致相同的情况下集群QPS。
发布配置:模拟发布一定大小的配置,频繁发布配置,记录CPU大致相同的情况下集群TPS。
注册服务:模拟注册一定数量服务提供者,按照一定频率注册服务实例,记录CPU大致相同的情况下集群TPS。
查询服务:模拟注册一定数量服务提供者,按照一定频率查询服务实例,记录CPU大致相同的情况下集群QPS。
变更推送:模拟注册1:3:3(服务:提供者:订阅者)的比例注册服务、服务提供者、订阅者,按照一定的频率随机注册注销一些服务提供者,触发服务端主动推送,记录CPU大致相同的情况下集群吞吐量。
测试结果
MSE Nacos和开源Nacos性能测试结果。
功能 | 开源自建Nacos | MSE Nacos | 性能提升 |
查询配置 | CPU:82% QPS:9981.96 | CPU:83% QPS:19950.47 | +99% |
发布配置 | CPU:73% TPS: 802.18 | CPU:73.8% TPS:2185.75 | +172% |
注册服务 | CPU:84.6% TPS:6986.14 | CPU: 83.6% TPS: 12973.89 | +85% |
查询服务 | CPU:70.6% QPS:8991 | CPU:71.1% QPS:20001.5 | +122% |
变更推送 | CPU:78.3% 出口流量:13.3MB/s | CPU:78.4% 出口流量:40.1MB/s | +202% |
MSE Nacos和开源Nacos性能对比(变更推送柱形图做了等比例放大)。
测试结论
MSE Nacos在核心功能上比开源自建Nacos有较大优势,性能最低比开源自建高85%,最高202%,整体性能基本比开源自建高一倍以上。