再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大
1.摘要
近期,腾讯云数据库在文章「腾讯云TDSQL-C重磅升级,性能全面领跑云原生数据库市场」中提到,某些场景下性能有非常大的提升,且超过国内某橙色云厂商。恰好,在5月份,我们对各个厂商的云原生数据库进行过一次压测,所以,看到文章,我们第一时间做了验证。具体的,验证内容包括:
当前的TDSQL-C性能与五月份相比,是否有明显增强
不同厂商的云原生数据库性能是否有明显变化
具体的信息查看:「再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大」,该内容同步发布于微信公众号:「云数据库技术」,欢迎订阅,第一时间获取信息。
2.测试结果
- TDSQL-C在「读写混合」场景下,5月、6月性能并没有明显变化

- 各云厂商在「读写混合」、「只读」、「只写」场景下的压测结果:阿里云的PolarDB性能最好,其次是华为云的GaussDB、腾讯云的TDSQL-C:

测试下来,暂时没有感受到TDSQL-C “重磅升级” 。针对这个问题也通过工单方式咨询了腾讯云的服务人员,得到的答复是:TDSQL-C 的全面升级还没有覆盖所有的地域,目前只在指定地域上线,且还需要开通白名单。
事实证明,白兴奋一场,只能等后续新版本更大范围开放后再测试了。另外,也希望厂商在宣传的时候,说得更清楚一些,否则会让客户困惑。
3.测试说明
这里对我们的测试方式做一个详细说明。本次测试选择了各个厂商的4c16g的规格进行横向对比,使用了工具sysbench 1.0.20版本进行测试。具体的,在「读写」、「只读」、「只写」3个场景下进行2~512个线程的压测, 获取每秒执行事务数TPS(Transactions Per Second)、每秒执行请求数QPS(Queries Per Second)来作为性能对比指标。
测试的数据库规格:

各个云厂商的云原生数据库都使用默认配置参数(开箱即用)。
客户端规格:

测试命令:
-- 准备数据
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} oltp_read_write prepare -- 运行workload
# OLTP读写混合
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_read_write run # OLTP只读场景
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_read_only run # OLTP只写场景
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 --report-interval=1 oltp_write_only run -- 清理数据
sysbench --db-driver=mysql --mysql-host=XXX --mysql-port=XXX --mysql-user=XXX --mysql-password=XXX --mysql-db=sbtest --table_size=10000000 --tables=10 --events=0 --time=300 --threads={2~512} --percentile=95 oltp_read_write/oltp_read_only/oltp_write_only cleanup
说明:10张表,每张表1000万数据,数据集约25G,2~512个线程进行压测。
补充说明:
阿里云使用:主地址(高可用地址,用RW表示)和 集群地址(自动读写分离地址,用Proxy表示)
腾讯云使用:读写内网地址(高可用地址,用RW表示)和 只读内网地址(高可用地址,用RO表示)
华为云使用:读写内网地址(高可用地址,用RW表示)和 数据库代理地址(自动读写分离地址,用Proxy表示),还有直连后端Server节点(单点)地址(用SRW和SRO表示)。
使用Proxy时需要注意:
Proxy有一定的链路开销,在没有使用到读写分离的情况下,性能会降低。
腾讯云暂不支持自动读写分离Proxy;阿里云的Porxy在自动读写分离上支持的最好;华为云的Proxy需要开启参数--skip-trx(非事务模式)才能使用从节点,支持的不友好(本文测试没有开启该参数)。
华为云Proxy受CPU和宽带限制:
CPU个数小于"16":50MB
CPU个数小于"32":100MB,
CPU个数小于"64":200MB,
CPU个数小于"128":400MB
CPU个数小于"256":1000MB,
最大2000MB
4.测试详情
4.1 TDSQL-C 升级之后是否有提升?
读写场景:


从表中数据的对比看到:2次压测数据性能差距不大,TDSQL-C性能没有提升,原因见「测试结果」中的说明。
4.2 TDSQL-C性能有没有超越业内其他云原生数据库产品?
读写场景:




读写场景结论
不算Proxy的情况下,性能上「阿里云-RW」比「华为云-RW」高12%,比「腾讯云-RW」高37%。
算上Proxy的情况下,性能上「阿里云-Proxy」比「阿里云-RW」高47%;「华为云-Proxy」比「华为云-RW」低24%,「阿里云-Proxy」比「华为云-Proxy」高61%。
华为云Proxy性能低的原因是其Proxy不支持事务拆分,虽然通过Proxy地址,但也只在主节点上执行(未开启--skip-trx参数:是否跳过SQL语句开头的begin和结尾的commit)。
从QPS和TPS的平均值之和,性能从高到低依次排序为:「阿里云-Proxy」> 「阿里云-RW」> 「华为云-RW」 > 「腾讯云-RW」 > 「华为云-Proxy」
只读场景:




只读场景结论:
不算Proxy的情况下,性能上「阿里云-RW」比「华为云-RW」高11%,比「腾讯云-RW」高56%。
算上Proxy的情况下,性能上「阿里云-Proxy」比「阿里云-RW」高14%;「华为云-Proxy」比「华为云-RW」低27%;「阿里云-Proxy」比「华为云-Proxy」高100%。
华为云Proxy性能低的原因是其Proxy不支持事务拆分,虽然通过Proxy地址,但也只在主节点上执行(未开启--skip-trx参数:是否跳过SQL语句开头的begin和结尾的commit)。
从QPS和TPS的平均值之和,性能从高到低依次排序为:「阿里云-Proxy」> 「阿里云-RW」> 「华为云-RW」 > 「华为云-Proxy」>「腾讯云-RW」
只写场景:




只写场景结论:
不算Proxy的情况下,性能上「阿里云-RW」比「华为云-RW」高21%,比「腾讯云-RW」高60%。
算上Proxy的情况下,性能上「阿里云-RW」比「阿里云-Proxy」高7%;「华为云-RW」比「华为云-Proxy」高18%;「阿里云-Proxy」比「华为云-Proxy」高35%。
Proxy性能低的原因是代理在增加了链路的前提下,写都在主节点。
从QPS和TPS的平均值之和,性能从高到低依次排序为:「阿里云-RW」> 「阿里云-Proxy」> 「华为云-RW」 > 「华为云-Proxy」 > 「腾讯云-RW」
通过以上三个场景的压测对比,可以看到TDSQL-C性能没有超越业内其他云原生数据库产品,原因见本文「测试结果」中的说明。
5.总结
得到的数据是在TDSQL-C还没有升级的情况下压测的,通过各场景得出的QPS、TPS 的平均值之和来对比,结果如下:
读写场景下:「阿里云-Proxy」> 「阿里云-RW」> 「华为云-RW」 > 「华为云-Proxy」>「腾讯云-RW」
只读场景下:「阿里云-Proxy」> 「阿里云-RW」> 「华为云-RW」 > 「华为云-Proxy」>「腾讯云-RW」
只写场景下:「阿里云-RW」> 「阿里云-Proxy」> 「华为云-RW」 > 「华为云-Proxy」 > 「腾讯云-RW」
通过压测数据,看到当前性能最好的依旧是PolarDB。特别在自动读写分离(Proxy)的功能上,阿里云优势大于华为云(不支持事务拆分)和腾讯云(不支持读写分离地址)。也非常期待TDSQL-C 在“重磅升级” 之后带来的性能提升。
后续等TDSQL-C升级覆盖到更多地域之后,再进行测试验证。希望通过本文,对大家在选择云厂商的云原生数据库产品时有帮助。
再测云原生数据库性能:PolarDB依旧最强,TDSQL-C、GaussDB变化不大的更多相关文章
- 云栖干货回顾 | 云原生数据库POLARDB专场“硬核”解析
POLARDB是阿里巴巴自主研发的云原生关系型数据库,目前兼容三种数据库引擎:MySQL.PostgreSQL.Oracle.POLARDB的计算能力最高可扩展至1000核以上,存储容量可达100TB ...
- 比MySQL快6倍 深度解析国内首个云原生数据库POLARDB的“王者荣耀”
随着移动互联网.电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战——为迎接“双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次的访问,但 ...
- 深度解析国内首个云原生数据库POLARDB的“王者荣耀”
随着移动互联网.电子商务的高速发展,被使用最多的企业级开源数据系统MySQL面临着巨大挑战--为迎接"双11"的高并发要提前做好分库分表;用户不断激增要将读写分离才能应对每天上亿次 ...
- 云原生数据库崛起,阿里云POLARDB当选世界互联网领先科技成果!
第六届世界互联网大会来了!千年水乡古镇乌镇又一次吸引了全世界的目光. 刚刚,阿里云自研数据库POLARDB在会上当选世界互联网领先科技成果.POLARDB解决了企业在云时代的数据库难题,帮助企业在数小 ...
- 腾讯云原生数据库TDSQL-C架构探索和实践
作为云原生技术先驱,腾讯云数据库内核团队致力于不断提升产品的可用性.可靠性.性能和可扩展性,为用户提供更加极致的体验.为帮助用户了解极致体验背后的关键技术点,本期带来腾讯云数据库专家工程师王鲁俊给大家 ...
- 为什么CynosDB叫真正的云原生数据库?
本文由腾讯云数据库发表 注:本文摘自2018年11月22日腾讯云数据库CynosDB新品发布会的演讲实录.随着互联网信息的发展,大家也对云这个词汇也不是特别陌生了,作为全球首选的云服务厂商之一的腾讯云 ...
- 云原生数据库mysql对共享存储分布式文件系统的接口需求分析
1. 引言 云原生数据库跟分布式mpp数据库是有差异的,虽然两者都是计算与存储分离,但是在资源的占用上有所不同.云原生数据库是shard everything架构,其依赖的存储资源.内存资源.事务资源 ...
- 云原生数据库 TDSQL-C 产品概述、产品优势、应用场景
云原生数据库 TDSQL-C(Cloud Native Database TDSQL-C,TDSQL-C)是腾讯云自研的新一代高性能高可用的企业级分布式云数据库.融合了传统数据库.云计算与新硬件技术的 ...
- 又拿奖了!腾讯云原生数据库TDSQL-C斩获2021PostgreSQL中国最佳数据库产品奖
日前,开源技术盛会PostgresConf.CN & PGconf.Asia2021大会(简称2021 PG亚洲大会)在线上隆重召开,腾讯云作为业内领先的云数据库服务商受邀出席,多位专家深入数 ...
随机推荐
- 基于pgrouting的路径规划处理
对于GIS业务来说,路径规划是非常基础的一个业务,一般公司如果处理,都会直接选择调用已经成熟的第三方的接口,比如高德.百度等.当然其实路径规划的算法非常多,像比较著名的Dijkstra.A*算法等.当 ...
- Istio实践(4)- 故障注入、熔断及ServiceEntry
前言:接上一篇istio多服务应用部署及调用,本文介绍通过流量管理(故障注入.请求超时等)以及ServiceEntry外部服务部署应用 1.设置服务延迟 修改springbootapp-vs-v1.y ...
- 聊聊 node 如何优雅地获取 mac 系统版本
背景 今天突然碰到了一个兼容性需求,需要根据不同 macOS 版本,进行不同的兼容性处理. 没想到看似简单的需求,中间也经历了一番波折,好在最后解决了问题. 在此记录一下解决问题的过程,也方便其他有类 ...
- Docker的三种网络代理配置
开源Linux 长按二维码加关注~ 上一篇:IPv6技术白皮书(附PDF下载) 有时因为网络原因,比如公司NAT,或其它啥的,需要使用代理.Docker的代理配置,略显复杂,因为有三种场景.但基本原理 ...
- CSS加载不会阻塞DOM树解析
1.css的加载不会阻塞DOM树解析. 1).css加载不会阻塞DOM树的解析: 2).css加载会阻塞DOM树渲染: 先把DOM树结构先解析完,等CSS加载完后根据最终样式渲染DOM树,免了css加 ...
- 2.Docker安装
CentOS Docker 安装 前提条件 目前,CentOS 仅发行版本中的内核支持 Docker.Docker 运行在CentOS 7 (64-bit)上, 要求系统为64位.Linux系统内核版 ...
- 聊一聊 HBase 是如何写入数据的?
hi,大家好,我是大D.今天继续了解下 HBase 是如何写入数据的,然后再讲解一下一个比较经典的面试题. Region Server 寻址 HBase Client 访问 ZooKeeper: 获取 ...
- vscode修改括号对颜色,自定义括号颜色
新版的vscode 1.67(2022年4月更新的版本),自带括号颜色匹配,十分的方便. 至于怎么开启,已经有人写过,这里就不写了,更新到新版默认开启~ 括号颜色默认只有3种颜色,有时候感觉不够用. ...
- SpringMVC和spring集成
步骤:1.web.xml中配置spring的监听和spring配置文件位置 2.编写spring类并在spring的配置文件里配置bean 说明:源码中spring核心配置文件导入springAnno ...
- DevOps之敏捷开发
初步了解一下敏捷开发及其流程 1 为什么要敏捷开发? 敏捷开发描述了一套软件开发的价值和原则,在这些开发中,需求和解决方案皆通过自组织跨功能团队达成. 1.1 背景与动机 当需求的不明确性和工程实现的 ...