合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] ## **1.简介** `sysbench`是跨平台的基准测试工具,支持多线程,支持多种数据库。 主要包括以下几种测试: * cpu性能 * 磁盘io性能 * 调度程序性能 * 内存分配及传输速度 * POSIX线程性能 * 数据库性能(OLTP基准测试) ## **2.安装** ``` # 下载并解压 wget https://github.com/akopytov/sysbench/archive/1.0.zip -O``"sysbench-1.0.zip" unzip sysbench-1.0.zip cd sysbench-1.0 # 安装依赖 yum install automake libtool –y # 编译安装 ./autogen.sh ./configure export LD_LIBRARY_PATH=/usr/local/mysql/include #这里换成机器中mysql路径下的include make make install # 安装成功 sysbench --version ``` ## **3.sysbench语法** 执行`sysbench --help`获取用法。 ``` sysbench [options]... [testname] [command] ``` ### **3.1.options** **MySQL连接信息参数** * --mysql-host:MySQL服务器主机名,默认localhost; * --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。 ### **3.2.testname** testname指定了要进行的测试,在老版本的sysbench中,可以通过--test参数指定测试的脚本;而在新版本中,--test参数已经声明为废弃,可以不使用--test,而是直接指定脚本。 ``` sysbench --test=./tests/include/oltp_legacy/oltp.lua sysbench ./tests/include/oltp_legacy/oltp.lua ``` ## **4.示例** 在执行`sysbench`时,应该注意以下几点: 1. 尽量不要再MySQL服务器上进行测试,会影响MySQL服务的表现; 2. 可以逐步增加客户端的并发连接数,观察在不同情况下,MySQL服务器的表现; 3. 一般执行模式选择complex即可,如需特别测试服务器的只读性能,或不使用事务时的性能,可以选择simple或者nontrx; 4. 如果连续测试多次,确保之前测试的数据被清理干净。 **使用示例** 准备数据 ``` sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.10.10 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=100000 --threads=10 --time=120 --report-interval=10 prepare ``` 执行测试 ``` sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.10.10 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --oltp-test-mode=complex --oltp-tables-count=10 --oltp-table-size=100000 --threads=10 --time=120 --report-interval=10 run >> /home/test/mysysbench.log ``` 清理数据 ``` sysbench ./tests/include/oltp_legacy/oltp.lua --mysql-host=192.168.10.10 --mysql-port=3306 --mysql-user=root --mysql-password=123456 cleanup ```