MySQL 学习篇(三)3.3 mysqlslap、sysbench 常用基准测试工具使用和介绍(中)

目录

mysqlslap基准测试工具介绍

mysqlslap常用参数说明

mysqlslap在Linux上的操作

mysqlslap常用参数说明总结 

sysbench前言

sysbench定义

sysbench安装说明


  • mysqlslap基准测试工具介绍

  • mysqlslap常用参数说明

   

  • mysqlslap在Linux上的操作

  1. 1 系统中是否安装mysqlslap工具
[root@localhost ~]# mysqlslap --help

数据库自带不需要再进行安装的工作。

  1. 2 运行mysqlslap测试命令
[root@localhost script]# mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=sbtest

# 分析:
# --concurrency=1,50,100,200   指定我们的并发数量为1单线程,50个并发,100个并发和200个并发
# --iterations=3               测试完成三次
# --number-int-cols=5          我们生成的整数行(int)可以定义成五行数量
# --number-char-cols=5         我们生成的字母行(char)可以定义成五行数量
# --auto-generate-sql          指定由系统自动成功SQL进行测试
# --auto-generate-sql-add-autoincrement 自动生成的SQL自增ID
# --engine=myisam,innodb       指定表的存储引擎为myisam和innodb
# -number-of-queries=10        每个查询量为10
# --create-schema=sbtest       测试在sbtest下进行
  1. 3 测试结果
Benchmark
	Running for engine myisam
	Average number of seconds to run all queries: 0.002 seconds
	Minimum number of seconds to run all queries: 0.002 seconds
	Maximum number of seconds to run all queries: 0.003 seconds
	Number of clients running queries: 1
	Average number of queries per client: 10

Benchmark
	Running for engine myisam
	Average number of seconds to run all queries: 0.075 seconds
	Minimum number of seconds to run all queries: 0.045 seconds
	Maximum number of seconds to run all queries: 0.092 seconds
	Number of clients running queries: 50
	Average number of queries per client: 0

Benchmark
	Running for engine myisam
	Average number of seconds to run all queries: 0.120 seconds
	Minimum number of seconds to run all queries: 0.086 seconds
	Maximum number of seconds to run all queries: 0.156 seconds
	Number of clients running queries: 100
	Average number of queries per client: 0

Benchmark
	Running for engine myisam
	Average number of seconds to run all queries: 0.377 seconds
	Minimum number of seconds to run all queries: 0.364 seconds
	Maximum number of seconds to run all queries: 0.389 seconds
	Number of clients running queries: 200
	Average number of queries per client: 0

Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.009 seconds
	Minimum number of seconds to run all queries: 0.003 seconds
	Maximum number of seconds to run all queries: 0.021 seconds
	Number of clients running queries: 1
	Average number of queries per client: 10

Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.086 seconds
	Minimum number of seconds to run all queries: 0.073 seconds
	Maximum number of seconds to run all queries: 0.103 seconds
	Number of clients running queries: 50
	Average number of queries per client: 0

Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.239 seconds
	Minimum number of seconds to run all queries: 0.205 seconds
	Maximum number of seconds to run all queries: 0.274 seconds
	Number of clients running queries: 100
	Average number of queries per client: 0

Benchmark
	Running for engine innodb
	Average number of seconds to run all queries: 0.326 seconds
	Minimum number of seconds to run all queries: 0.309 seconds
	Maximum number of seconds to run all queries: 0.349 seconds
	Number of clients running queries: 200
	Average number of queries per client: 0

从上面看来,测试的场景有单线程和50、100、200并发,由于搜索引擎的配置同时对MyISAM和InnoDB进行测试,mysqlslap先执行MyISAM的测试测试根据测试场景不同,分别有4次结果,然后接下来会进行InnoDB的测试,同样有四次测试结果,每次场景的结果都测试只指的三次

问题:在单线程环境下,InnoDB与MyISAM那个性能好?

答:InnoDB

解析:在单并发情况下(1),每个SQL只执行一次查询,myisam是平均执行为0.002s,而InnoDB是0.009s,说明InnoDB在单线程优于myisam。

问题:在多线程程环境下,InnoDB与MyISAM那个性能好?

答:InnoDB

解析:上述测试结果中的200并发中,myisam运行了是200次查询是平均执行为0.377s,而InnoDB是0.326s,说明在这种混合的查询压力下,InnoDB性能要好的。这也就是前面我们为什么要推荐大家使用InnoDB的一个原因。

  1. 4 上面我们只是进行了查询,但是我们并不知道这个压力测试的具体执行的查询是什么,刚才我们介绍了--only -print这个参数,可以通过这个命令行查看具体的脚本内容,最后对sbtest做了一个清楚操作
[root@localhost script]# mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=sbtest --only-print

首先指定库sbtest,并且指定了默认存储引擎是myisam,之后建立t1表,t1表包含了我们所指定的int数量以及char数量、自增ID,生成了测试所需要的数据。

  1. 5 生成到 1.sql 脚本里面
[root@localhost script]# mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=sbtest --only-print > 1.sql
  1. 6 查看1.sql脚本内容
tail 1.sql

7.sql具体内容

DROP SCHEMA IF EXISTS `sbtest`;
CREATE SCHEMA `sbtest`;
use sbtest;
set storage_engine=`myisam`;
CREATE TABLE `t1` (id serial,intcol1 INT(32) ,intcol2 INT(32) ,intcol3 INT(32) ,intcol4 INT(32) ,intcol5 INT(32) ,charcol1 VARCHAR(128),charcol2 VARCHAR(128),charcol3 VARCHAR(128),charcol4 VARCHAR(128),charcol5 VARCHAR(128));
INSERT INTO t1 VALUES (NULL,1804289383,846930886,1681692777,1714636915,1957747793,'vmC9127qJNm06sGB8R92q2j7vTiiITRDGXM9ZLzkdekbWtmXKwZ2qG1llkRw5m9DHOFilEREk3q7oce8O3BEJC0woJsm6uzFAEynLH2xCsw1KQ1lT4zg9rdxBLb97R','GHZ65mNzkSrYT3zWoSbg9cNePQr1bzSk81qDgE4Oanw3rnPfGsBHSbnu1evTdFDe83ro9w4jjteQg4yoo9xHck3WNqzs54W5zEm92ikdRF48B2oz3m8gMBAl11Wy50','w46i58Giekxik0cYzfA8BZBLADEg3JhzGfZDoqvQQk0Akcic7lcJInYSsf9wqin6LDC1vzJLkJXKn5onqOy04MTw1WksCYqPl2Jg2eteqOqTLfGCvE4zTZwWvgMz4D','Ph7kD1E6f4MMQk1ioopsoIIcoD83DD8Wu7689K6oHTAjD3Hts6lYGv8x9G0EL0k87q8G2ExJjz2o3KhnIJBbEJYFROTpO5pNvxgyBT9nSCbNO9AiKL9QYhi0x3hL9W','lwRHuWm4HE8leYmg66uGYIp6AnAr0BDd7YmuvYqCfqp9EbhKZRSymA4wx6gpHlJHI53DetH9j7Ixar90Jey5outd1ZIAJdJTjMaD7rMiqYXHFhHaB7Xr1HKuqe51GG');
INSERT INTO t1 VALUES (NULL,962033002,1047372231,1707746139,1372261796,2073785404,'egILWisfxPwOc3nJx4frnAwgI539kr5EXFbupSZelM2MHqZEmD6ZNuEZzHib8fqYuHQbdrDND8lXqIdcNbAeWOBLZlpZOX5AoNlQFzpK7QjxcLP0wbWIriYGJLqksn','ug3YyANnWWDEJiRkiFC4a3e6KyJ2i3hSjksiuFLHlRXw9yhjDtnfoQd0OouyrcIbCB9zQWG4pf0yTZhaIT67nj7BY21FWJqaWrZxEh13Kt2hRbGl4MsrxsuLmvd8FJ','id3GaHpRC2L6jgirPm5AW3uGGgCloJ5Ww0eNHSiLWvS5bAxto23AxxR6TXr9qofeoAtxWcJsXnxzxmsdhvoekFc5mSES8tyxvsuPK5Hjs7ihtaJaLz5xEh2s1GCA22','zxutF6rOqjXYHHzSrKRwAhWCPXTdhNXYKQIRO9sEkFf1YeTGqw40Ta5u6QNfpvC1DWTTXDkFSFHtte9bbDSwgZjmryHglLhqjAKEF4MkJfT49eXcjzZNOG1F6BnsYT','i8X2EnycNH7sDHMltxcILtQE0ZPoPq9zyg24J0hiAgQNpg8jedtrWK5WtXIALR9B03FJ4ou6TCTAtWtN7fETzBzkiAmvTv6LrEZn2RtNfMaOkJfjytCp54ZfEJbb7Z');
.
.
.
SELECT intcol1,intcol2,intcol3,intcol4,intcol5,charcol1,charcol2,charcol3,charcol4,charcol5 FROM t1 WHERE id =  '796c4422-1d94-102a-9d6d-00e0812d';
INSERT INTO t1 VALUES (NULL,1737294815,890606230,606224472,1363840163,1273014148,'i0mhPMZARzlcWEcg6zkQ3o6eafDcrS4QSq7u5Z4YYh0vwSbuRBKN0QtQ562pQyFmgEYlnT9CA176Ta0plC4dfxvkvpZDngzKvY5it7m38t2WJuJx7FamCMMzBoCrSB','BFb8ySFkYGWQmhKxeRC55ORSNWGbLceYsEhiaoIy4gOiMlfs4rxA7GeMnmp0ESZ6a6g8mz7jXNPt85mDwbN4ktIXf8XlcwkAuOAZF9GnZZYZeAmRm1NWuhtPpG3P5n','RrBWOJXYy46WWkhG3JAQhw8QEpaH7f4QN7wfISCGOInuuK3qX5G41GM76wG5SCXrKKMWgan4kQrXmmL9rTDkmbskN8prLCaZYx3CNiH880XumsvTL8Dzbxbz6GiJTH','k16n6TMFdWF8HtsCM6DRxoPZfNhEiAXQ4T5AyRPSyYS7PLJfJO6G5XpkuXycZLuTqsfhBw91Sd8lqSO9sXQx27apWOHweCPKw517t29EgHzMdGYMnyJhxlWS2gOgsp','0gmunYwwmSEdrrtFDg5PE22cM4Gek0Kdg6XSWJGGoWuXEneJKjcQlf20jBeKBypkxK4RXKkBrWax9CGTvlvZOqZz13BC20orCsIcDunwGMtQa1vMmjn2ZKuaFxe9yR');
DROP SCHEMA IF EXISTS `sbtest`;
CREATE SCHEMA `sbtest`;
use sbtest;
set storage_engine=`myisam`;
CREATE TABLE `t1` (id serial,intcol1 INT(32) ,intcol2 INT(32) ,intcol3 INT(32) ,intcol4 INT(32) ,intcol5 INT(32) ,charcol1 VARCHAR(128),charcol2 VARCHAR(128),charcol3 VARCHAR(128),charcol4 VARCHAR(128),charcol5 VARCHAR(128));
INSERT INTO t1 VALUES (NULL,1804289383,846930886,1681692777,1714636915,1957747793,'vmC9127qJNm06sGB8R92q2j7vTiiITRDGXM9ZLzkdekbWtmXKwZ2qG1llkRw5m9DHOFilEREk3q7oce8O3BEJC0woJsm6uzFAEynLH2xCsw1KQ1lT4zg9rdxBLb97R','GHZ65mNzkSrYT3zWoSbg9cNePQr1bzSk81qDgE4Oanw3rnPfGsBHSbnu1evTdFDe83ro9w4jjteQg4yoo9xHck3WNqzs54W5zEm92ikdRF48B2oz3m8gMBAl11Wy50','w46i58Giekxik0cYzfA8BZBLADEg3JhzGfZDoqvQQk0Akcic7lcJInYSsf9wqin6LDC1vzJLkJXKn5onqOy04MTw1WksCYqPl2Jg2eteqOqTLfGCvE4zTZwWvgMz4D','Ph7kD1E6f4MMQk1ioopsoIIcoD83DD8Wu7689K6oHTAjD3Hts6lYGv8x9G0EL0k87q8G2ExJjz2o3KhnIJBbEJYFROTpO5pNvxgyBT9nSCbNO9AiKL9QYhi0x3hL9W','lwRHuWm4HE8leYmg66uGYIp6AnAr0BDd7YmuvYqCfqp9EbhKZRSymA4wx6gpHlJHI53DetH9j7Ixar90Jey5outd1ZIAJdJTjMaD7rMiqYXHFhHaB7Xr1HKuqe51GG');
INSERT INTO t1 VALUES (NULL,962033002,1047372231,1707746139,1372261796,2073785404,'egILWisfxPwOc3nJx4frnAwgI539kr5EXFbupSZelM2MHqZEmD6ZNuEZzHib8fqYuHQbdrDND8lXqIdcNbAeWOBLZlpZOX5AoNlQFzpK7QjxcLP0wbWIriYGJLqksn','ug3YyANnWWDEJiRkiFC4a3e6KyJ2i3hSjksiuFLHlRXw9yhjDtnfoQd0OouyrcIbCB9zQWG4pf0yTZhaIT67nj7BY21FWJqaWrZxEh13Kt2hRbGl4MsrxsuLmvd8FJ','id3GaHpRC2L6jgirPm5AW3uGGgCloJ5Ww0eNHSiLWvS5bAxto23AxxR6TXr9qofeoAtxWcJsXnxzxmsdhvoekFc5mSES8tyxvsuPK5Hjs7ihtaJaLz5xEh2s1GCA22','zxutF6rOqjXYHHzSrKRwAhWCPXTdhNXYKQIRO9sEkFf1YeTGqw40Ta5u6QNfpvC1DWTTXDkFSFHtte9bbDSwgZjmryHglLhqjAKEF4MkJfT49eXcjzZNOG1F6BnsYT','i8X2EnycNH7sDHMltxcILtQE0ZPoPq9zyg24J0hiAgQNpg8jedtrWK5WtXIALR9B03FJ4ou6TCTAtWtN7fETzBzkiAmvTv6LrEZn2RtNfMaOkJfjytCp54ZfEJbb7Z');

.
.
.
SELECT intcol1,intcol2,intcol3,intcol4,intcol5,charcol1,charcol2,charcol3,charcol4,charcol5 FROM t1 WHERE id =  '796c4422-1d94-102a-9d6d-00e0812d';
INSERT INTO t1 VALUES (NULL,96759867,1061661180,1774706704,1746943939,1894924677,'DzTKWRxai2buLyHMF1hQKicN3Wq3Q2sg1L0OhxyNrZADYRRnS0Doii3mCuhfoaJpnBDS0Bksdu59LYohYuL7cPlgBQJz0Woghu8ixsQaeXbzvGYJAuIeJ3IMWWLMs1','2QnB0lvQJaxnPk3yvDsEj3HtPnFeA8XCaJFQ43sFdh2uPxsK2kalfkXwXmaZu6eKHlmLoWSHBNCSK4pNhF0KrXHFIjo4hIHy4vBsQgAT3MyFIfWzmXCeuLt44Z9msI','coDoYXKi1FwzW7W16GOIuAffFc5GExaqdfW9BqkC5Y3SfZLmhdwSnS7u4CAA1c0e8XgJDONBoIfSj06OT2sGM0BI4DSyiTcqs81xOO8DafhHXnh0haHwQKEMPjKzCp','pwxitM6ubYZ8p5nXxKxEGNQXlkEyjInZ6k7ryElPeBZS8Cz5ZwChBWCoEImySZNaAWQ8c3aFEzjMCaKdMYIP2NDHhs7AHWcRs2cT62cCtJR5lna7BlYD8dMhTTjnrK','6cEa5KcZPWksRTXuSif0vnTASrX4WFOcreBorfLG150TQXNuDum0hFA1yi5SpTxg08Krfhzhez24WHyjBkjkrmlqKjI94Fp4F1nnimSClMGFX6qaqaIhCvXYeihbpM');
DROP SCHEMA IF EXISTS `sbtest`;


  • mysqlslap常用参数说明总结 

  

 

  • sysbench前言

mysqlslap是十分简单而且实用的工具,但是生成的自动测试方案,不能很好的体现InnoDB存储引擎的性能。

在上面的mysqlslap测试操作中,虽然建表的sql我们指定了的InnoDB存储引擎,也指定了相关的自增ID列,但是在自增ID列上没有建立相关索引,所以自动生成的InnoDB并没有自增ID,对于它的性能是有一些影响。

另外,如果我们想对MySQL服务器进行一些测试,如:CPU内存和I/O测试mysqlslap也有点无能为力。

  • sysbench定义

问:sysbench包括几种方式的测试?

答:

  1. cpu性能
  2. 磁盘io性能
  3. 调度程序性能
  4. 内存分配及传输速度
  5. POSIX线程性能
  6. 数据库性能(OLTP基准测试)

同样是一种多线程基准测试工具,可以对影响数据库服务器的各种因素进行测试,并评估其系统性能的表现,sysbench可以对文件的io、操作系统的调用服务器、CPU内存和数据库服务器等来进行测试,同时支持lua脚本语言,所以对各种测试场景进行设置,使用起来是十分灵活的。

sysbench非常全面的一种基准测试工具,也是最常用的,同时sysbench测试方式非常接近InnoDB处理方式,非常适合MySQL和MySQL所运行的服务器硬件来进行测试。

  • sysbench安装说明

  1. 1

   (一) windows 环境下的 sysbench-1.0 的链接地址:

https://github.com/akopytov/sysbench/archive/1.0.zip

   (二) Linux 环境下的 sysbench-1.0 的链接地址:

wget https://github.com/akopytov/sysbench/archive/1.0.zip -O "sysbench-1.0.zip"
  1. 进入对应存放工具目录
[root@localhost ~]# cd /root/immoc/tool
[root@localhost tool]# ls
sysbench-1.0.zip
  1. 3 解压(如果不支持解压先安装yum -y install zip unzip
[root@localhost tool]# unzip sysbench-1.0.zip
  1. 4 进入解压后文件并且执行脚本安装
[root@localhost tool]# ll
总用量 376
drwxr-xr-x. 7 root root   4096 1月  16 2017 sysbench-1.0
-rw-r--r--. 1 root root 379910 2月  22 14:40 sysbench-1.0.zip
[root@localhost tool]# cd sysbench-1.0
[root@localhost sysbench-1.0]# ./autogen.sh 

# 脚本会去检查是否符合安装的需求
  1. 5 安装失败错误信息(automake 1.10.x (aclocal) wasn't found, exiting 和  libtoolize 1.4+ wasn't found, exiting
[root@localhost sysbench-1.0]# ./autogen.sh 
automake 1.10.x (aclocal) wasn't found, exiting
[root@localhost sysbench-1.0]# yum install automake


[root@localhost sysbench-1.0]# ./autogen.sh 
libtoolize 1.4+ wasn't found, exiting
[root@localhost sysbench-1.0]# yum install libtool

# 或者直接用yum install automake libtool -y 直接代替上面两个安装命令


# 再次执行安装
[root@localhost sysbench-1.0]# ./autogen.sh 
  1. 6 如果没有报错参数的设置(configure: error: cannot find MySQL client libraries in /db/local/mysql/lib 解决办法
[root@localhost sysbench-1.0]# ./configure --with-mysql-includes=/usr/local/mysql/include

# 或者直接使用“./configure”命令即可


[root@localhost sysbench-1.0]#  make
[root@localhost sysbench-1.0]#  make install
  1. 7 安装成功
[root@localhost sysbench-1.0]# sysbench --version
sysbench 1.0.16

 

猜你喜欢

转载自blog.csdn.net/Sicily_winner/article/details/87857054
今日推荐