sysbench是跨平台的基准测试工具,支持多线程,支持多种数据库;主要包括以下几种测试:
cpu性能磁盘io性能调度程序性能内存分配及传输速度POSIX线程性能数据库性能(OLTP基准测试)
本文主要介绍对数据库性能的测试。
一、Sysbench的安装# 首先下载 Sysbench源码。运行 wget https://github.com/akopytov/sysbench/archive/1.0.20.tar.gz # 然后将文件重命名并解压缩。 mv 1.0.20.tar.gz sysbench.tar.gz tar -zxvf sysbench.tar.gz # 然后安装依赖 sudo apt install -y automake sudo apt install -y libtool sudo apt install -y pkg-config sudo apt install -y libmysqlclient-dev # 然后安装编译必须的文件,并编译 cd cd sysbench-1.0.20/ ./autogen.sh ./configure sudo make -j sudo make install # 运行sysbench --version查看版本。 sysbench --version二、Sysbench对mysql压测
# 对数据库进行压力测试。其中test_db数据库需要自己创建 sysbench --db-driver=mysql --time=300 --threads=4 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare # 测试并导出结果到指定文件 sysbench --db-driver=mysql --time=300 --threads=4 --report-interval=1 --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root --mysql-db=test_db --tables=20 --table_size=1000000 oltp_read_write --db-ps-mode=disable prepare --report-interval=10 run >> /home/test/mysysbench.log # 执行完测试后,清理数据,否则后面的测试会受到影响。 sysbench --mysql-host=192.168.10.10 --mysql-port=3306 --mysql-user=root --mysql-password=root cleanup2.1 sysbench参数说明
下面说明实际使用中,常用的参数和命令。
command:command是sysbench要执行的命令,包括prepare、run和cleanup,顾名思义,prepare是为测试提前准备数据,run是执行正式的测试,cleanup是在测试完成后对数据库进行清理。
testname:testname指定了要进行的测试,在老版本的sysbench中,可以通过--test参数指定测试的脚本;而在新版本中,--test参数已经声明为废弃,可以不使用--test,而是直接指定脚本。
例如,如下两种方法效果是一样的: sysbench --test=./tests/include/oltp_legacy/oltp.lua sysbench ./tests/include/oltp_legacy/oltp.lua
MySQL连接信息参数 --mysql-host:MySQL服务器主机名,默认localhost;如果在本机上使用localhost报错,提示无法连接MySQL服务器,改成本机的IP地址应该就可以了。 --mysql-port:MySQL服务器端口,默认3306 --mysql-user:用户名 --mysql-password:密码 MySQL执行参数 --oltp-test-mode:执行模式,包括simple、nontrx和complex,默认是complex。simple模式下只测试简单的查询;nontrx不仅测试查询,还测试插入更新等,但是不使用事务;complex模式下测试最全面,会测试增删改查,而且会使用事务。可以根据自己的需要选择测试模式。 --oltp-tables-count:测试的表数量,根据实际情况选择 --oltp-table-size:测试的表的大小,根据实际情况选择 --threads:客户端的并发连接数 --time:测试执行的时间,单位是秒,该值不要太短,可以选择120 --report-interval:生成报告的时间间隔,单位是秒,如10参考博文



