本文介绍通过性能测试工具 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 弹性手动扩容。
测试说明
测试会受到时段、时长、机器等多种因素影响,建议多次测试对比结果。
执行命令
根据以上步骤,分别进行测试。
说明:
请将以下命令中的 XXX 替换为云数据库 MySQL 测试实例的内网地址、端口号、用户名、用户密码、数据库名,具体参数说明如下:
-host:测试实例的内网地址
-port:端口号
-user:用户名
-password:上述用户名对应的密码
time:时间
threads:并发数
1. 准备数据,单表10w数据量,10张表。
sysbench –-db-driver=mysql –-mysql-host=xxx –-mysql-port=xxxx –-mysql-user=xxx –-mysql-password=‘XXXXXXXXXX’ –-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=xxx --mysql-port=xxxx --mysql-user=xxx --mysql-password=‘XXXXXXXXXX’ --mysql-db=sbtest --table_size=100000 --tables=10 --events=0 --time=xxx --threads={xxx} --percentile=95 --report-interval=1 oltp_read_write run
3. 清理数据。
sysbench --db-driver=mysql --mysql-host=xxx --mysql-port=xxxx --mysql-user=xxx --mysql-password=‘XXXXXXXXXX’ --mysql-db=sbtest --table_size=100000 --tables=10 --events=0 --time=xxx --threads={xxx} --percentile=95 oltp_read_write cleanup
测试结果
说明:
如下图所示,在三组 CPU 弹性扩容功能的对比实验结果中,我们可以看到:
第一阶段:21:03开启数据注入,NO-CPU-Expand 和 AUTO-CPU-Expand 的 CPU 利用率达到70%以上,但时长未超过1min。因此,AUTO-CPU-Expand 组未触发自动扩容功能,而 MANUAL-CPU-Expand 一开启即扩容,已经是4核运行状态,CPU 利用率不到50%;
第二阶段:21:07开启高并发测试,NO-CPU-Expand 的 CPU 利用率始终在70%以上,AUTO-CPU-Expand 的 CPU 利用率在70%以上,超过1min时触发了自动扩容,秒级扩容成功,利用率降低至50%以下,MANUAL-CPU-Expand 的 CPU 利用率始终保持在50%以下。
说明:
除了 CPU 利用率有显著变化外,开启 CPU 弹性扩容功能的实例性能表现同样明显,如下图所示,开启弹性扩容功能的 TPS、QPS 均高于未开启的实例。注意:测试的性能表现与测试时段、时长、机器等因素有一定的关系,建议多次测试对比结果。