兰州工业发展建设有限公司网站,建设网银登录网站,手机网站源码教程,wordpress上传ppt本文作者 LYZ 近些年#xff0c;云原生数据库成为云厂商的重要发展方向#xff0c;阿里云、百度智能云、腾讯云均先后发布了自研的云原生数据库。笔者认为云原生数据库具有更高的性价比、更极致的弹性#xff0c;可以满足业务发展的不同阶段和负载场景的需求#xff0c;也是… 本文作者 LYZ 近些年云原生数据库成为云厂商的重要发展方向阿里云、百度智能云、腾讯云均先后发布了自研的云原生数据库。笔者认为云原生数据库具有更高的性价比、更极致的弹性可以满足业务发展的不同阶段和负载场景的需求也是云数据库从托管开源数据库到原生化自研的必然发展。 笔者一直非常深度关注、调研和使用云数据库其中性能是关注的重点之一。一方面性能是最终成本的重要影响因素更好的性能通常意味着使用更少的资源支撑更高的业务量从而降低整体成本。另外性能还意味着在极端场景下数据库的上限支撑能力。所以近期对各个云数据库厂商做了一个较为系统的性能对比供开发者和企业在云数据库选型时的参考。 笔者在进行大量测试之后对主要的云厂商分别选择了“主流规格”适合生产环境配置的进行了对比综合性能结果是阿里云 PolarDB 百度智能云 GaiaDB 腾讯云 TDSQL-C详细测试数据对比见下图
蓝色百度智能云 GaiaDB 红色腾讯云 TDSQL-C 绿色阿里云 PolarDB 测试方案
测试环境 厂商 虚机客户端 云原生数据库信息 阿里-PolarDB 地域/可用区华北2北京 客户端32核64GB 实例镜像CentOS 8.2 64位 网络云服务器 ECS 和云原生数据库集群在同一私有网络VPC 内核版本mysql8.0.2 实例类型独享型 实例规格2C8G、4C16G、8C32G、8C64G、16C128G、32C256G 节点个数一主一只读 腾讯-TDSQL-C 地域/可用区北京 客户端32核64GB 客户端操作系统CentOS 8.2 64位 网络云服务器 CVM 和云原生数据库集群在同一私有网络VPC 内核版本mysql8.0 实例类型独享型 实例规格2C8G、4C16G、8C32G、8C64G、16C128G、32C256G 节点个数一主一只读 百度-GaiaDB 地域/可用区华北-北京 客户端32核64GB 客户端操作系统CentOS 8.2 64位 网络云服务器BCC和云原生数据库集群在同一私有网络VPC 内核版本mysq8.0.18 实例类型独享型 实例规格2C8G、4C16G、8C32G、8C64G、16C128G、32C256G 节点个数一主一只读
测试工具 sysbench工具介绍SysBench 是一个跨平台且支持多线程的模块化基准测试工具用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置甚至在没有安装数据库的前提下快速了解数据库系统的性能。sysbench官方文档 sysbench版本 1.0.20版本 sysbench测试模型 sysbench 标准 OLTP 读写混合场景中一个事务包含18个读写 SQL。 sysbench 标准 OLTP 只读场景中一个事务包含14个读 SQL10条主键点查询、4条范围查询。 sysbench 标准 OLTP 只写场景中一个事务包含4个写 SQL2条 UPDATE、1条 DETELE、1条 INSERT。
测试指标
性能测试的指标包括 每秒执行事务数TPSTransactions Per Second数据库每秒执行的事务数以COMMIT成功次数为准。 每秒执行请求数QPSQueries Per Second数据库每秒执行的SQL数包含INSERT、SELECT、UPDATE、DETELE、COMMIT等。 所有 event 95分位耗时 95_lat95% Latency
评测方法 阿里云、百度智能云、腾讯云分别申请同配置云主机作为客户端 云厂商申请同等价位和配置的数据库实例 Sysbench工具从云主机客户端向数据库实例发起读请求、写请求和读写请求
测试方法 OLTP读写场景压测
#准备数据
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 oltp_read_write prepare
#运行workload
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 --report-interval1 oltp_read_write run
#清理
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 oltp_read_write cleanup OLTP只读场景压测
#准备数据
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 oltp_read_only prepare
#运行workload
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 --range_selects0 --skip-trx1 --report-interval1 oltp_read_only run
#清理
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 --range_selects0 oltp_read_only cleanup OLTP只写场景压测
#准备数据
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 oltp_write_only prepare
#运行workload
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 --report-interval1 oltp_write_only run
#清理
sysbench --db-drivermysql --mysql-hostXXX --mysql-portXXX --mysql-userXXX --mysql-passwordXXX --mysql-dbsbtest --table_size25000 --tables250 --events0 --time600 --threadsXXX --percentile95 oltp_write_only cleanup
测试场景 分别选择百度和竞品的6种套餐2C8G、4C16G、8C32G、8C64G、16C128G、32C256G进行测试 对于每种规格选择读写、只读、只写3种场景进行测试 每个套餐均新增128并发下的测试
限制与补充说明
在测试过程中的一些限制进行补充说明供参考。 不同厂商的内核兼容版本存在小版本号差别这里忽略小版本的性能差异。 不同厂商的CPU、磁盘类型、价格等各有不同所以这是一个相对对等的测试。 不同厂商的数据库实例的默认参数也各有不同因此不能确定测试结果是最优配置但基本是默认配置下的性能表现。
总体结论与分析 综合性能排名阿里云 百度智能云 腾讯云 阿里云 PolarDB 整体性能明显高于百度智能云 GaiaDB 和腾讯云 TDSQL-C分析原因应该是 PolarDB 在云上使用了更高端的硬件从阿里云的宣传来看应该使用了RDMA和NVM。 百度智能云 GaiaDB 性能也还不错在部分测试场景中和阿里云PolarDB差距不大。从公开的信息分析GaiaDB没有使用高端的硬件如果仅使用通用硬件跑出这个性能应该还是非常不错的性能。 腾讯云 TDSQL-C 性能比较出乎意料在8核以上规格的性能明显低于百度、阿里。从腾讯公开的信息分析腾讯也没有使用高端的硬件因此只能说软件层面的深度优化还有很大空间。 只写场景
只写性能百度与阿里差距较小从最近百度发布的《核心技术演进和解析》分析百度智能云 GaiaDB 在写链路方面做了较多优化包括Quorum协议、高性能网络协议等。 参考资料
以下是笔者在分析性能过程中翻阅的网络材料仅供参考
[数据库技术]PolarDB-超火的云原生
云原生数据库 GaiaDB 的核心技术演进和解析
百度直播
百度安全验证