测试工具

数据库基准性能测试为 sysbench 0.5。

工具修改说明:
对 sysbench 自带的 otlp 脚本做了修改,读写比例修改为1:1,并通过执行测试命令参数 oltp_point_selects 和 oltp_index_updates 来控制读写比例,本文测试用例均采用4个 select 点,1个 update 点,读写比例保持4:1。

安装工具

本文测试使用的是 Sysbench 0.5 版本,安装方法如下:

git clone https://github.com/akopytov/sysbench
git checkout 0.5
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make install或者直接yum安装
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
yum -y install sysbench

以上是在CentOS 系统上的安装方法,如需安装到其他操作系统,请参见 Sysbench 官方文档。

测试环境

类型

说明

实例物理机器

双节点-单机器最高可支撑488GB内存、6TB硬盘数据库

实例规格

当前售卖主流配置规格(详见下文 测试用例)

客户端配置

4核8GB内存

客户端数量

1 - 6个(若配置提升,客户端数量也需要相应提升)

网络环境

万兆网络机房,网络延时 < 0.05ms

环境负载

安装 mysql 机器负载 > 70%(针对非独占实例)

  • 客户端规格说明:机器采用了较高配置的客户机器,保证单客户端可以压测出数据库实例的性能,如果客户端配置规格较小,建议采用多个客户并行压测实例来求取数据总和。
  • 网络延时说明:测试环境保证客户端机器与数据库实例在同一可用区,测试结果不受网络环境影响。

测试方法

1. 数据准备

1)在mysql中创建库名=test的测试数据库,进入sysbench并执行下面命令

sysbench --mysql-host=xxxx --mysql-port=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=test --mysql-table-engine=innodb --test=tests/db/oltp.lua --oltp_tables_count=20 --oltp-table-size=10000000  --rand-init=on prepare

数据准备参数说明:

  • --test=tests/db/oltp.lua,表示调用 tests/db/oltp.lua 脚本进行 oltp 模式测试。
  • --oltp_tables_count=20,表示用于测试的表数量为20张。
  • --oltp-table-size=10000000,表示每个测试表填充数据行数为1000万行。
  • --rand-init=on,表示每个测试表都是用随机数据来填充的。

2)生成的表结构

CREATE TABLE `sbtest1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',PRIMARY KEY (`id`), KEY `k_1` (`k`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

3)测试数据行格式

id: 1
k: 20106885
c: 08566691963-88624912351-16662227201-46648573979-64646226163-77505759394-75470094713-41097360717-15161106334-50535565977
pad: 63188288836-92351140030-06390587585-66802097351-4928296184

2. 性能压测命令

sysbench --mysql-host=xxxx --mysql-port=xxx --mysql-user=xxx --mysql-password=xxx --mysql-db=test --test=/root/sysbench_for_z3/sysbench/tests/db/oltp.lua --oltp_tables_count=xx --oltp-table-size=xxxx --num-threads=xxx --oltp-read-only=off --rand-type=special --max-time=600 --max-requests=0 --percentile=99 --oltp-point-selects=4 run

性能压测参数说明:

  • --test=/root/sysbench_for_z3/sysbench/tests/db/oltp.lua,表示调用 /root/sysbench_for_z3/sysbench/tests/db/oltp.lua 脚本进行 oltp 模式测试。
  • --oltp_tables_count=20,表示本次用于测试的表数量为20张。
  • --oltp-table-size=10000000,表示本次测试使用的表行数均为1000万行。
  • --num-threads=128,表示本次测试的客户端连接并发数为128。
  • --oltp-read-only=off ,off 表示测试关闭只读测试模型,采用读写混合模型。
  • --rand-type=special,表示随机模型为特定的。
  • --max-time=1800,表示本次测试的执行时间。
  • --max-requests=0,0 表示不限制总请求数,而是按 max-time 来测试。
  • --percentile=99,表示设定采样比例,默认是95%,即丢弃1%的长请求,在剩余的99%里取最大值。
  • --oltp-point-selects=4,表示 oltp 脚本中 sql 测试命令,select 操作次数为4,默认值为1。

3. 场景模型

本文用例均使用 sysbench 的 lua 脚本,修改为4个 select 点查询,1个 update (索引列),读写比为4:1。
针对最大配置类型,对数据场景增加了参数调优模型,测试结果见下文 测试结果。

测试参数

实例规格

存储空间

表数量

表行数

数据集大小

并发数

执行时间(分钟)

1核1GB

200GB

4

2000万

19GB

128

30

1核2GB

200GB

4

4000万

38GB

128

30

2核4GB

200GB

8

4000万

76GB

128

30

4核8GB

200GB

15

4000万

142GB

128

30

4核16GB

400GB

25

4000万

238GB

128

30

8核32GB

700GB

25

4000万

238GB

128

30

16核64GB

1TB

40

4000万

378GB

128

30

16核96GB

1.5TB

40

4000万

378GB

128

30

16核128GB

2TB

40

4000万

378GB

128

30

24核244GB

3TB

60

4000万

567GB

128

30

48核488GB

6TB

60

4000万

567GB

128

30

48核488GB(调优)

6TB

60

1000万

140GB

128

30

测试结果

实例规格

存储空间

数据集

客户端数

单客户端并发数

QPS

TPS

1核1GB

200GB

19GB

1

128

1757

97

1核2GB

200GB

38GB

1

128

3016

167

2核4GB

200GB

76GB

1

128

4082

816

4核8GB

200GB

142GB

1

128

6551

1310

4核16GB

400GB

238GB

1

128

11098

2219

8核32GB

700GB

238GB

2

128

20484

3768

16核64GB

1TB

378GB

2

128

36395

7279

16核96GB

1.5TB

378GB

3

128

56464

11292

16核128GB

2TB

378GB

3

128

81752

16350

24核244GB

3TB

567GB

4

128

98528

19705

48核488GB

6TB

567GB

6

128

142246

28449

48核488GB(调优)

6TB

140GB

6

128

245509

46304

sysbench 性能测试相关推荐

  1. Sysbench性能测试(一):sysbench简介与安装

    Sysbench性能测试 传送门: Sysbench性能测试(一): sysbench简介与安装 Sysbench性能测试(二): sysbench基本使用和CPU性能测试 Sysbench性能测试( ...

  2. Sysbench性能测试(二): sysbench基本使用和CPU性能测试

    Sysbench性能测试 传送门: Sysbench性能测试(一): sysbench简介与安装 Sysbench性能测试(二): sysbench基本使用和CPU性能测试 Sysbench性能测试( ...

  3. sysbench 性能测试

    性能测试基准工具 安装 yum  install  sysbench -y [root@test ~]# sysbench  Missing required command argument. Us ...

  4. sysbench性能测试

    sysbench的官网地址是:http://sysbench.sourceforge.net Step 1: 下载安装: sysbench-0.5.tar.gz 解压后展开目录如下 [root@loc ...

  5. TiDB 在汽车之家818台网互动项目中的应用

    原文来源: https://tidb.net/blog/c71227fc 作者: 靳献旗 ** ** DBA ** ** 张帆 ** ** RD 1. 背景 "818全球汽车夜"是 ...

  6. mysql占用内存过高调优方法

    优化mysql数据库性能的十个参数 (1).max_connections: 查看对应信息:show variables like '%max_connections%'; 允许的同时客户的数量.增加 ...

  7. sysbench的安装和做性能测试

    sysbench的安装和做性能测试 http://imysql.cn/node/312 sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况. ...

  8. 如何用sysbench做好IO性能测试

    2019独角兽企业重金招聘Python工程师标准>>> sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对 ...

  9. MySQL性能测试工具sysbench的安装和使用

    sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前 ...

最新文章

  1. 依赖属性之“风云再起”三
  2. 数据结构:单向环形链表
  3. 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
  4. 比较python类的两个instance(对象) 是否相等
  5. web.py端口被占用的错误
  6. CGCKD2021大会报告整理(1)--宽度学习
  7. python出现的意义_[转]Python中下划线以及命名空间的意义
  8. 前 1 号店 CTO 黄哲铿揭秘:微服务架构在超大场景下的应用
  9. Android系统性能调优工具介绍
  10. 常见食物营养成分表图_提醒大家;甲状腺结节的“根源”已揭晓,4种常见蔬菜,请趁早列入黑名单...
  11. Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)
  12. iOS--资料--类目Category收集
  13. 14. CSS 列表
  14. Linux内核安全包括哪些内容,Linux内核安全更新怎么样 解决了哪些问题
  15. a星算法的优缺点_轻松理解机器学习算法:C4.5算法
  16. python3项目源代码下载_资源整理 | 36个惊人的Python开源项目,都在这了
  17. macOS 安卓模拟器 Nox夜神模拟器 共享目录
  18. 曾国藩家书-修身篇 致诸弟·明师益友虚心请教
  19. 大数据的分析技术,主要有哪些?
  20. Lively Wallpaper —— 优秀的开源视频壁纸软件

热门文章

  1. 电脑报2013年第4期
  2. Oracle PL/SQL语句基础学习笔记(上)
  3. 图形化开发(六)01-Three.js之导入模型——3dmax和SketchUp-editor编辑器导出json文件,在创建模型initMesh中外部的JSON文件
  4. 无线测温在线监测系统工作原理与产品选型
  5. 验证码的作用,为什么要存在验证码
  6. CSS中有哪些隐藏页面元素的方法?
  7. 【Linux入门指北】第一篇 初识Linux
  8. 【51单片机Task】:led十六进制控制led灯详解、按键控制流水灯、跑马灯等任务
  9. android计步器进度条,Android实现计步进度的环形Progress
  10. vmware 里的 rac install 的记录