Nacos 2.0 升级前后性能对比压测

简介: Nacos 2.0 通过升级通信协议和框架、数据模型的方式将性能提升了约 10 倍,解决继 Nacos 1.0 发布逐步暴露的性能问题。本文通过压测 Nacos 1.0,Nacos 1.0 升级 Nacos 2.0 过程中,Nacos 2.0 进行全面性能对比,直观的展示 Nacos 2.0 所带来的性能提升。

作者|席翁

Nacos 2.0 通过升级通信协议和框架、数据模型的方式将性能提升了约 10 倍,解决继 Nacos 1.0 发布逐步暴露的性能问题。本文通过压测 Nacos 1.0,Nacos 1.0 升级 Nacos 2.0 过程中,Nacos 2.0 进行全面性能对比,直观的展示 Nacos 2.0 所带来的性能提升。

压测准备

环境准备

为了方便 Nacos 部署升级和展示核心性能指标,我们是从阿里云微服务引擎 MSE(_https://cn.aliyun.com/product/aliware/mse_)中购买的一个 2 核 CPU+4G 内存的三节点 Nacos 集群。

压测模型

为了展示不同规模下的系统表现,我们采用逐步增压的方式进行压测,将压力分为 3个批次进行逐步启动,并观察每个批次下集群的运行表现。同时会在压力集群之外,再增加一个 Dubbo 服务的 Demo ,并使用 Jmeter 以 100 TPS 的压力不停的调用,以模拟不同压力下,对实际业务调用存在的可能影响。

压测过程中,会在适当的时候对服务端和客户端进行升级;服务端的升级将直接使用 MSE 提供的一键升级功能,客户端的升级会使用分批次轮流重启的方式进行。

压测过程

Nacos1.X Server + Nacos1.X Client

首先启动第一批施压集群,对 MSE Nacos1.2.1 进行施压,在 6000 个 Providers 的压力下,集群稳定时 CPU 大约 25% ,能够稳定保持 6000 实例。

随后启动第二批施压集群,增加 4000 个 Provider ,合集 10000 个 Provider 。此时集群峰值 CPU 已经达到 60% ,稳定运行时大约在 45% 左右,集群能够稳定运行。

在前两批的压力下,集群没有出现稳定性问题,所以 Dubbo 的调用保持正常,没有错误发生。

当第三批施压集群启动之后,压力总计 14000 个 Provider 。此时集群先是短暂的注册到 13000 个实例,之后很快出现实例数下跌,CPU 跑满的问题。并且缩小时间范围可以看到,下跌后的实例仍然在小范围抖动。

同时 Dubbo 的调用出现错误,从 Consumer 的日志可以看出,是由于服务端无法支撑这个级别的压力,导致 Dubbo Provider 被摘除,所以调用的时候出现了 No provider 的错误。

Nacos2.X Server + Nacos1.X Client

由于服务端升级期间,会进行实例的双写操作,因此在升级过程中服务端存储的实例数会是实际实例值的两倍。根据上述测试结果,需要先将实例数回滚回第一批 6000 实例之后,或是升级配置扩容机器之后再尝试升级。本文使用回滚压力的方式,先停止后启动的施压集群。让集群恢复正常后再执行升级。

从监控图中可以看出,在停止后两批压力后,集群很快就恢复到了正常,运行稳定,Dubbo 调用也恢复正常。之后使用 MSE 的升级功能,进行升级。升级过程中由于双写的性能损耗,导致 CPU 有较大的抖动;而且因为双写导致的实例数翻倍,实际上相当于 12000 实例的极限压力,服务端仍然有一定的抖动,因此导致了些许 Dubbo 的错误。若是在非极限压力下升级,将不会有此影响。

随着服务端升级完成停止双写,消除了双写带来的性能损耗,CPU 使用降低并趋于稳定,同时实例数也不再抖动,Dubbo 调用完全恢复;如同 1.X 服务端一样,分两个批次启动施压集群,对比两个版本间在相同压力下的性能表现。


由于客户端依旧使用的是 1.X 的客户端,服务端的使用水位依然非常高,在全部压力启动后,CPU 几乎达到 100% ;虽然没有像 1.X 服务端一样,出现大规模实例下跌,但是运行一段时间后依旧有少量的实例抖动,说明仅升级 Nacos 服务端到 2.0 版本能有一定的改善,但是没有彻底解决性能问题。

Nacos2.X Server + Nacos2.X Client

为了完全释放 Nacos 2.0 的性能,还需要将施压集群的客户端也升级到 2.0 以上版本。同样将分 3 个批次进行替换,期间由于 Provider 进行了重启,服务端有出现实例的下跌再恢复属于正常现象。随着施压集群的升级,可以发现 CPU 有了非常明显的下降,最终达到稳定时,CPU 由最初的接近 100% ,降低到 20%,集群稳定运行 14000 个实例。

压测结果

如上所述,我们能够得到 2 核 CPU+4G 内存的三节点集群在不同版本下的性能差异:


由此可见,Nacos 2.0 确实对性能有较大的提升,新用户建议直接全部采用 Nacos 2.0,老用户建议先升级 Server 端,然后在逐步升级客户端释放红利。最后从整个压测视角的监控,来直观的感受一下不同版本在不同阶段的性能表现:

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python冒泡排序实验报告_python中的冒泡排序

首先,再将python的冒泡排序之前,先来复习一个python中的自带排序函数:sort(但是这个函数是没有返回值的,并且只能针对列表,大家使用的时候需要注意一下): 例子如下: li[11,22,4,6,-9,-7,99,66] …

深入浅出讲解MSE Nacos 2.0新特性

简介: 随着云原生时代的到来,微服务已经成为应用架构的主流,Nacos也凭借简单易用、稳定可靠、性能卓越的核心竞争力成为国内微服务领域首选的注册中心和配置中心;Nacos2.0更是把性能做到极致,让业务快速发展的用户再也…

交换机是如何对数据包打标签去标签的_条形码软件如何在标签纸上套打可变条码...

在制作商品标签时,通常会遇到标签纸上已经有部分内容,需要我再添加打印一些对应的信息(如下图),那么这种情况下,如何比较简单的在合适位置上打印可变条码呢,下面我们就来详细看一下在中琅条形码软件中套打可变条码的操…

学不动也要学!ViewPager2 新特性

作者 | tech-bus.丹卿来源 | 程序员八十前 言浏览Android开发者官网的时候,发现Google竟然曾经悄悄推出过一个新的控件:ViewPager2;从名字上看就知道是ViewPager的升级版本,看了下推出这个控件的时间,早在2019年2月7号Google就已经发布了&…

方舟手游服务器受人无限物资,方舟生存进化BUG无限刷物资方法 | 手游网游页游攻略大全...

发布时间:2015-10-23壳是铁房子必须的材料,今天小编为大家带来一天1000壳的方法,不过高收益伴随着高风险,大家一定要小心,来看这篇熔岩洞生存攻略以及刷壳方法把. 右下角坐标(75 85 ...标签:游戏攻略 游戏秘籍 方舟生存进化发布时间:2016-04-…

闲鱼如何保障交易链路质量

简介: 闲鱼交易质量自动化 背景 闲鱼作为一款垂直交易社区APP,拥有复杂多样的业务场景:涉及c2c、回收寄卖、租房租赁、见面交易、验货担保等,复杂多变的交易模式。比如验货流程:涉及39个状态机节点横跨10应用系统涉及…

DevOps发布策略简介

简介: DevOps追求更短的迭代周期、更高频的发布。但发布的次数越多,引入故障的可能性就越大。更多的故障将会降低服务的可用性,进而影响到客户体验。所以,为了保证服务质量,守好发布这个最后一道关,阿里逐步…

data的值 如何初始化vue_Vue原理解析(九):搞懂computed和watch原理,减少使用场景思考时间...

之前的章节,我们按照流程介绍了vue的初始化、虚拟Dom生成、虚拟Dom转为真实Dom、深入理解响应式以及diff算法等这些核心概念,对它内部的实现做了分析,这些都是偏底层的原理。接下来我们将介绍日常开发中经常使用的API的原理,进一步…

存储引擎 boltdb 的设计奥秘?

作者 | 奇伢来源 | 奇伢云存储etcd 的存储etcd v3 是使用的持久化存储来存储它的 kv 数据,etcd 存储的是非常核心的元数据信息,所以最重要的是稳定。使用的是 boltdb 。下面说道说道这个 boltdb 。boltdb 是什么?boltdb 是一个非常出名的存储…

ftl转PDF服务器上中文不显示,解决Linux中swftools转换中文pdf时出现乱码问题

前段时间安装了swftools可以将pdf转换为swf文件,然后配合一个FlexPaper,就可以做成和百度图文库类似的东东了.但是今天,我们开发的同事告诉我说pwd转换的这个会有乱码问题,我看了一下果然是乱码了.果断打开百度,看了一下主要是由于没有相应的字体文件,所以才造成乱码的而且在使…

提升你的职场竞争力——“低代码开发师”来了!

简介: 最近,钉钉发布了低代码开发师能力图谱,引发业界的广泛关注 。现在低代码开发师(初级)认证已经启动。 最近,钉钉发布了低代码开发师能力图谱,引发业界的广泛关注 。 所谓的低代码开发其实…

mapreduce复制连接的代码_我的 Hive 为什么跑不起来/跑得慢?看看是不是少了这几行代码?...

《饮食男女》开头说:“人生不能像做菜,把所有的料都准备好了才下锅。”但做大数据挖掘不一样,MapReduce 不同于人生,一定要把准备工作做好了,才能顺利运行后面的步骤。如果你的 HiveQL 代码没毛病,却一运行…

数字化转型的路上,手握一张地图,但路还得自己走

简介: 本文作者来自于中国人寿保险股份有限公司研发中心,对企业数字化转型、云原生实践有比较资深的经验。以下内容整理自作者对最新出版的《阿里云云原生架构实践》的读后感。 作者|肖晟 ​ 本文作者来自于中国人寿保险股份有限公司研发中…

tp 数据库查询排序_怎么进行数据库分库分表?

一,数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对…

服务器响应为4.7.0,454 4.7.0 临时身份验证失败 - Exchange | Microsoft Docs

454 4.7.0 Exchange Server2021/4/9适用于:Exchange Server 2019, Exchange Server 2016 Standard Edition, Exchange Server 2016 Enterprise Edition, Exchange Server 2013 Standard Edition, Exchange Server 2013 Enterprise, Exchange Server 2010 Standard, Exchange Se…

流利说统一可观察性平台实践

简介: 流利说利用日志服务SLS构建统一可观察性平台最佳实践 在线教育行业现状 随着 90 年代互联网的引入,在线教育产品也依托于互联网诞生。随着互联网技术的发展,在线教育产品也开 始了出现新的模式。在线教育从最初单纯的文字形式&#xf…

“CSDN 2021年度IT技术影响力之星评选”正式开启报名!

2021年,数字化转型正磅礴兴起,大批传统企业正在拥抱数字化,云计算、大数据、AI、5G应用能力正在变成企业的核心竞争力;核心技术正在崛起,在操作系统、数据库,依靠开源的力量,众多开发者背后的行…

java log4j logback jcl_Java 日志二三事

前言Java 拥有功能和性能都非常强大的日志库,但另一方面,Java 日志库依赖看起来丰富的让人眼花缭乱。相信大家或多或少都有这样的疑问,Log4j,SLF4J,Logback,Log4j2 这些日志框架我该如何选择?它…

一文了解EPaxos核心协议流程

简介: EPaxos(Egalitarian Paxos)作为工业界备受瞩目的下一代分布式一致性算法,具有广阔的应用前景。但纵观业内,至今仍未出现一个EPaxos的工程实现,甚至都没看到一篇能把EPaxos讲得通俗一点的文章。EPaxos…

xpspeak安装教程_查漏补缺:教你正确操作 XPS 分峰软件 XPSPEAK

一、引言X射线光电子能谱(XPS):利用X射线辐射样品,使原子或分子的内层电子或价电子受激发射出来,光子激发出来的电子称为光电子,利用能量分析器分析光电子的能量,作出光电子能谱图,横坐标一般为结合能&…