sysbench 性能测试
测试工具
数据库基准性能测试为 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 性能测试相关推荐
- Sysbench性能测试(一):sysbench简介与安装
Sysbench性能测试 传送门: Sysbench性能测试(一): sysbench简介与安装 Sysbench性能测试(二): sysbench基本使用和CPU性能测试 Sysbench性能测试( ...
- Sysbench性能测试(二): sysbench基本使用和CPU性能测试
Sysbench性能测试 传送门: Sysbench性能测试(一): sysbench简介与安装 Sysbench性能测试(二): sysbench基本使用和CPU性能测试 Sysbench性能测试( ...
- sysbench 性能测试
性能测试基准工具 安装 yum install sysbench -y [root@test ~]# sysbench Missing required command argument. Us ...
- sysbench性能测试
sysbench的官网地址是:http://sysbench.sourceforge.net Step 1: 下载安装: sysbench-0.5.tar.gz 解压后展开目录如下 [root@loc ...
- TiDB 在汽车之家818台网互动项目中的应用
原文来源: https://tidb.net/blog/c71227fc 作者: 靳献旗 ** ** DBA ** ** 张帆 ** ** RD 1. 背景 "818全球汽车夜"是 ...
- mysql占用内存过高调优方法
优化mysql数据库性能的十个参数 (1).max_connections: 查看对应信息:show variables like '%max_connections%'; 允许的同时客户的数量.增加 ...
- sysbench的安装和做性能测试
sysbench的安装和做性能测试 http://imysql.cn/node/312 sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况. ...
- 如何用sysbench做好IO性能测试
2019独角兽企业重金招聘Python工程师标准>>> sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对 ...
- MySQL性能测试工具sysbench的安装和使用
sysbench是一个开源的.模块化的.跨平台的多线程性能测试工具,可以用来进行CPU.内存.磁盘I/O.线程.数据库的性能测试.目前支持的数据库有MySQL.Oracle和PostgreSQL.当前 ...
最新文章
- 依赖属性之“风云再起”三
- 数据结构:单向环形链表
- 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
- 比较python类的两个instance(对象) 是否相等
- web.py端口被占用的错误
- CGCKD2021大会报告整理(1)--宽度学习
- python出现的意义_[转]Python中下划线以及命名空间的意义
- 前 1 号店 CTO 黄哲铿揭秘:微服务架构在超大场景下的应用
- Android系统性能调优工具介绍
- 常见食物营养成分表图_提醒大家;甲状腺结节的“根源”已揭晓,4种常见蔬菜,请趁早列入黑名单...
- Android自定义事件总线,手写Android事件总线框架Eventbus(简易版)
- iOS--资料--类目Category收集
- 14. CSS 列表
- Linux内核安全包括哪些内容,Linux内核安全更新怎么样 解决了哪些问题
- a星算法的优缺点_轻松理解机器学习算法:C4.5算法
- python3项目源代码下载_资源整理 | 36个惊人的Python开源项目,都在这了
- macOS 安卓模拟器 Nox夜神模拟器 共享目录
- 曾国藩家书-修身篇 致诸弟·明师益友虚心请教
- 大数据的分析技术,主要有哪些?
- Lively Wallpaper —— 优秀的开源视频壁纸软件
热门文章
- 电脑报2013年第4期
- Oracle PL/SQL语句基础学习笔记(上)
- 图形化开发(六)01-Three.js之导入模型——3dmax和SketchUp-editor编辑器导出json文件,在创建模型initMesh中外部的JSON文件
- 无线测温在线监测系统工作原理与产品选型
- 验证码的作用,为什么要存在验证码
- CSS中有哪些隐藏页面元素的方法?
- 【Linux入门指北】第一篇 初识Linux
- 【51单片机Task】:led十六进制控制led灯详解、按键控制流水灯、跑马灯等任务
- android计步器进度条,Android实现计步进度的环形Progress
- vmware 里的 rac install 的记录