背景
云数据库的性能是关注的重点之一。一方面性能是最终成本的重要影响因素,更好的性能,通常意味着使用更少的资源支撑更高的业务量,从而降低整体成本。另外,性能还意味着在极端场景下,数据库的上限支撑能力。所以,近期对各个云数据库厂商做了一个较为系统的盲测性能对比,供开发者和企业在云数据库选型时的参考。
笔者认为,在云数据库厂商直接创建集群,各种参数均为默认参数,这种情况能最直观地体现产品的性能。因为很多用户,尤其是小白用户,在创建云数据库时并不会在参数上做更多的设置。本文中测试结果中,除规格切换为4C8G外,实例类型、磁盘类型、参数模板均为以下默认值进行性能测试。
测试结果来看,百度智能云磁盘IO读写、只写场景均有优势;阿里云全缓存场景优势比较明显;腾讯云只读场景优于百度云,读写与只写场景弱于百度智能云;华为云的表现有点奇怪,各个场景均弱于其他竞品,写场景性能差距明显。
详细测试数据对比见下图:
(蓝色:百度智能云 红色:阿里云 绿色:腾讯云 紫色:华为云)
测试方案
测试环境
阿里云 |
百度智能云 |
腾讯云 |
华为云 |
|
默认规格 |
默认2C8G,切换为4C8G |
默认2C8G,切换为4C8G |
默认4C8G |
默认2C4G,切换为4C8G |
实例类型 |
通用型 |
通用型 |
通用型 |
独享型 |
磁盘类型 |
云盘 |
本地盘 |
本地盘 |
云盘 |
参数模版 |
高性能参数模版 |
高性能参数模版 |
高稳定性参数模版 |
默认参数模版 |
MySQL版本 |
8.0.36 |
8.0.32-2.0.0.2 |
8.0.30 |
8.0.28-231003 |
可用去 |
华北2(北京)-可用区L |
北京可用区D |
默认北京一区,无云服务器,切换至北京三区 |
可用区一 |
测试工具
-
sysbench工具介绍:SysBench 是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。sysbench官方文档
-
sysbench版本:1.0.20版本
-
sysbench测试模型:
-
sysbench 标准 OLTP 读写混合场景中一个事务包含18个读写 SQL。
-
sysbench 标准 OLTP 只读场景中一个事务包含14个读 SQL(10条主键点查询、4条范围查询)。
-
sysbench 标准 OLTP 只写场景中一个事务包含4个写 SQL(2条 UPDATE、1条 DETELE、1条 INSERT)。
-
性能测试的指标
-
每秒执行请求数QPS(Queries Per Second)数据库每秒执行的SQL数,包含INSERT、SELECT、UPDATE、DETELE、COMMIT等。
评测方法
-
阿里云、百度智能云、腾讯云、华为云分别申请同配置云主机作为客户端
-
云厂商申请同等规格和配置的数据库实例
-
Sysbench工具从云主机客户端向数据库实例发起读请求、写请求和读写请求
评测场景
-
发压虚机:32核64G
-
数据库实例类型:默认类型、通用型本地盘
-
数据量:全缓存型、磁盘IO型
-
测试场景:只读、只写、读写混合
-
套餐类型:4C8G规格
-
数据库版本:MySQL8.0版本
-
并发数:16/32/64并发
-
时间:10min/次
总体结论与分析:
默认类型场景下:百度智能云 > 阿里云 > 腾讯云 > 华为云
通用型本地盘场景下,阿里云>百度云智能云>腾讯云
-
百度智能云的表现比较惊喜,默认类型略优于其他竞品5%+;通用型本地场景弱于阿里云9.7%,优于腾讯云4%;磁盘IO场景写场景有优势,全缓存场景弱于阿里云
-
阿里云通用型云盘及本地盘在全缓存场景优势明显,优于其他竞品,但磁盘IO场景弱于百度智能云、腾讯云
-
腾讯云通用型和独享型均不支持云盘,默认通用型本地SSD盘,整体性能略弱于百度智能云、阿里云,差距较小
-
华为云的性能比较出乎意料,MySQL8.0版本通用型和独享型均不支持本地盘,独享型SSD云盘性能与其他厂商默认类型差距明显