编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

基于centos7系统安装部署sysbench--mysql基准测试神器

wxchong 2024-06-30 10:55:13 开源技术 17 ℃ 0 评论

概述

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

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

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

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

环境如下:


一、下载

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

二、安装依赖

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 

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

四、测试

# /usr/local/sysbench/bin/sysbench --version

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


五、开始测试

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

1、cpu性能测试

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

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

2、线程测试

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

3、磁盘IO性能测试

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

3.1、准备数据

3.2、测试

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数据库,感兴趣的朋友可以关注一下~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表