mysql 时间比较_基于centos7系统安装部署sysbench--mysql基准测试神器

概述

sysbench是基于LuaJIT的可以脚本化多线程基准。 它是一个模块化的、跨平台、多线程基准测试工具,最常用于数据库基准测试,但也可以用于创建不涉及数据库服务器的任意复杂工作负载。

sysbench附带了以下捆绑的基准测试:

  • oltp_*.lua: 一个像数据库基准的oltp集合
  • fileio: 文件系统级基准
  • cpu: 一个简单的CPU基准
  • memory: 内存访问基准
  • threads: 基于线程的调度程序基准
  • mutex: POSIX互斥基准

目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。

环境如下:

64ff9d2577fb6708ee0471a617a547fb.png

一、下载

sysbench的源码可以在github上面下载的到,sysbench的主页

https://github.com/akopytov/sysbench

官网地址:https://dev.mysql.com/downloads/benchmarks.html

--通过github官网下载#wget https://codeload.github.com/akopytov/sysbench/zip/master--通过mysql官网下载#wget https://downloads.mysql.com/source/sysbench-0.4.12.14.tar.gz
8147a5a41cb8312080e8d286eadccf26.png
94bd6bb06fbe030f38c2e5c0d879ba0d.png

二、安装依赖

yum -y install gcc gcc-c++ make automake libtool pkgconfig libaio-devel 

因为在我的机器上已经安装上了mysql相关的所有包,如果你机器上还没有安装过这些,那你还要安装上mysql的开发包。


三、安装sysbench

1、解压安装

# tar -xvf sysbench-0.4.12.14.tar.gz 
30e164882f7eba536d9767ab916229bb.png

2、编译安装

如果需要测试PostgreSQL、Oracle,则在configure时需要加上 --with-oracle 或者 --with-pgsql 参数

--如果之前安装mysql是编译安装在/usr/local/,可以这样写:#./configure --prefix=/usr/local/sysbench/ --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make && make install--如果是yum不需要指定#./configure --prefix=/usr/local/sysbench/ --with-mysql && make && make install--如果是rpm安装需要指定# rpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpm#./configure --prefix=/usr/local/sysbench/ --with-mysql --with-mysql-includes=/usr/include/mysql -with-mysql-libs=/usr/lib64/mysql&& make && make install
8840af8764b6b972da244bf4e1035c92.png

四、测试

# /usr/local/sysbench/bin/sysbench --version
900ea935fd20f3520e5ae0d070fe9290.png

到目前为止sysbench的安装就算是完成了!


五、开始测试

编译成功之后,就要开始测试各种性能了,测试的方法在官网网站上也提到一些,但涉及到 OLTP 测试的部分却不够准确。

1、cpu性能测试

如果多台服务器进行CPU性能对比,当线程和素数个数一定时:相同时间,比较event;相同event,比较时间;时间和event都相同,比较stddev(标准差)。

--cpu测试主要是进行素数的加法运算,这里指定了最大的素数为 20000,可以根据机器cpu的性能来适当调整数值。sysbench --test=cpu --cpu-max-prime=20000 run
072d9a3f986e8a251aa363e6c8633a52.png

2、线程测试

sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run
afe1c0cbe9a06aae2d7ade5c0d8afd79.png

3、磁盘IO性能测试

--指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。--一定要到测试的磁盘目录下执行,否则可能测试系统盘了sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw preparesysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw runsysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup

3.1、准备数据

3bb02d60e94c464df43fc4916cbc50df.png
8f60c869c01f8ddf136aecee3942848d.png

3.2、测试

1dedb3f8c50b5332eced593d964613e3.png

4、内存测试

--指定了本次测试整个过程是在内存中传输 4G 的数据量,每个 block 大小为 8K。sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run

这里就省略了

5、OLTP测试

--指定了本次测试的表存储引擎类型为innodb和指定了表最大记录数为 1000000--测试 OLTP 时,可以自己先创建数据库sbtest,或者自己用参数 --mysql-db 来指定其他数据库。sysbench --test=oltp --mysql-table-engine=innodb --oltp-table-size=1000000 --mysql-db=lcpdb--mysql-socket=/var/lib/mysql/mysql.sock --mysql-user=root --mysql-host=localhost  --mysql-password=CUv2or1[5oMf08px prepare

这里就省略了。。。


篇幅有限,这块内容就介绍到这了,后面再单独介绍下怎么在生产环境用sysbench来测试mysql数据库,感兴趣的朋友可以关注一下~

e8bcc6ec71f11469c21ebec598a6f034.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值