暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PolarDB MySQL版与RDS MySQL性能对比

原创 huayumicheng 2023-08-12
716

阿里云关本文介绍PolarDB MySQL版与RDS MySQL在相同场景中OLTP负载性能的对比结果。

相对RDS MySQL,PolarDB MySQL版在如下几方面进行了优化,提高了集群整体性能:

  • 采用了领先硬件技术,包括使用3DXpoint存储介质的Optane存储卡、NVMeSSD和RoCE RDMA网络等。
  • 基于新的硬件,实现了一整套在用户态运行的IO和网络协议栈,获得了更高的性能、更低的延迟。
  • 通过锁优化、IO路径优化、针对大表优化等内核层面的优化,实现了并发场景下的更优性能。

说明 测试所用的产品为:

  • 不同规格的PolarDB MySQL版集群版独享规格集群。
  • 不同规格的RDS MySQL高可用版独享型规格实例(本地盘)。
具体测试方法,请参见性能测试方法(OLTP)

注意事项

在您对PolarDB和RDS进行性能对比前,请了解以下注意事项,以便能获得比较准确、合理的性能对比结果:

  • 使用相同规格配置的PolarDB和RDS进行性能对比。
  • 使用相同版本的PolarDB和RDS进行性能对比。

    因为不同版本的实现机制不一样,例如PolarDB MySQL版8.0.1针对多核数CPU做优化,单独抽象出来Log_writer、log_flusher、log_checkpoint、log_write_notifier等线程,但在CPU核数较少的情况下性能则不如MySQL 5.6或MySQL 5.7。不推荐使用PolarDB MySQL版5.6版本和RDS MySQL 5.7或MySQL 8.0进行对比,因为PolarDB MySQL版5.6的优化器比较旧,不如新版本。

  • 推荐使用模拟线上压力的场景进行实际性能对比,或者使用Sysbench进行对比,这样获得的数据更接近线上实际场景。
  • 在对比读性能的时候,不推荐您使用单条SQL进行比较。

    因为PolarDB是计算存储分离的架构,所以单条语句有网络延迟的影响,导致读性能不如RDS。但是线上数据库的缓存命中率基本都在99%以上,因此只有第一次的读会调用I/O,因此读取性能会降低,后续数据都在缓存池(Buffer Pool)中,并不需要调用I/O,因此性能是一样的。

  • 在对比写性能的时候,同样不推荐您使用单条SQL进行比较,推荐模拟线上环境进行压力测试。

    如果要对比RDS性能,请使用PolarDB(主节点+只读节点)和RDS(主实例+半同步的只读实例)进行对比。这是因为PolarDB的架构在写入数据的时候默认采用Quorum机制,即写入数据时默认写入到三副本里面的大多数(在三个副本中的两个或两个以上写入成功,就认为写操作成功了)。PolarDB已经在存储层面做了数据冗余,并保证三副本强同步高可靠,因此使用RDS MySQL的半同步复制(而不是异步复制)进行对比更合理。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论