这篇说说通过性能测试工具 SysBench,对比开启 CPU 弹性扩容能力的性能表现。
一、SysBench 工具介绍
SysBench 是一个跨平台且支持多线程的模块化基准测试工具,用于评估系统在运行高负载的数据库时,相关核心参数的性能表现。可绕过复杂的数据库基准设置,甚至在没有安装数据库的前提下,快速了解数据库系统的性能。
二、测试环境
注意:说明:
注意:以下环境为示例所使用的环境。
云数据库 MySQL 性能测试所使用的环境:
·地域/可用区:北京 – 北京七区
·客户端:S5.8XLARGE64(标准型S5,32核64GB)
·客户端操作系统:CentOS 8.2 64位
·网络:云服务器 CVM 和云数据库 MySQL 实例网络类型均为私有网络(VPC)且在同一子网下
测试的云数据库 MySQL 实例信息如下:
三组实例:北京七区,通用型2核4G,双节点云数据库 MySQL。
·A 组:NO-CPU-Expand,不开启 CPU 弹性扩容功能。
·B 组:AUTO-CPU-Expand,开启 CPU 弹性自动扩容功能。
·C 组:MANUAL-CPU-Expand,开启 CPU 弹性手动扩容功能。
参数设置:
控制台设置参数 max_prepared_stmt_count 为最高值,以应对高并发。
三、测试流程
步骤1:
在数据库内创建 sbtest 数据库,开启 B 组 CPU 弹性自动扩容,开启 C 组 CPU 弹性手动扩容。
步骤2:
Sysbench 准备数据,单表10w数据量,10张表。
步骤3:
Sysbench 读写测试,单表10w数据量,10张表。
步骤4:
Sysbench 清除数据,关闭 C 组 CPU 弹性手动扩容。
四、测试说明
测试会受到时段、时长、机器等多种因素影响,建议多次测试对比结果。
五、执行命令
根据以上步骤,分别进行测试。
注意:说明:
注意:请将以下命令中的 xxxx 替换为云数据库 MySQL 测试实例所需的实际信息,具体参数说明如下:
1. 准备数据,单表10w数据量,10张表。
sysbench –db-driver=mysql –mysql-host=xxxx –mysql-port=xxxx –mysql-user=xxxx –mysql-password='xxxx' –mysql-db=sbtest –table_size=100000 –tables=10 –events=0 –time=xxxx –threads=xxxx oltp_read_write prepare
2. 运行高并发,单表10w数据量,10张表。
sysbench –db-driver=mysql –mysql-host=xxxx –mysql-port=xxxx –mysql-user=xxxx –mysql-password='xxxx' –mysql-db=sbtest –table_size=100000 –tables=10 –events=0 –time=xxxx –threads=xxxx –percentile=95 –report-interval=1 oltp_read_write run
3. 清理数据。
sysbench –db-driver=mysql –mysql-host=xxxx –mysql-port=xxxx –mysql-user=xxxx –mysql-password='xxxx' –mysql-db=sbtest –table_size=100000 –tables=10 –events=0 –time=xxxx –threads=xxxx –percentile=95 oltp_read_write cleanup
六、测试结果
注意:说明:
注意:如下所示,在三组 CPU 弹性扩容功能的对比实验结果中,我们可以看到:
注意:说明:
注意:除了 CPU 利用率有显著变化外,开启 CPU 弹性扩容功能的实例性能表现同样明显,如下所示,开启弹性扩容功能的 TPS、QPS 均高于未开启的实例。注意:测试的性能表现与测试时段、时长、机器等因素有一定的关系,建议多次测试对比结果。