在使用sysbench 之前 先要避免一个坑。。(搞了一上午才跳过去):
sysbench的版本有好多,每个版本对应的命令是不同的,语法也是有相当一部分的差异,所以一定要按照你安装的版本,去sysbench --help 仔细看相关的命令,不然就会一直报各种语法错误。。
例如:在sysbench 0.4版本中 --help可以看到Compiled-in tests 下 有oltp基准测试的选项,而且可以用sysbench --test=oltp help 查看具体参数配置。而在1.0及以上的版本中是没有这个选项的。。
一.安装三步骤:
1.configure
./configure --prefix=/u01/sysbench/ --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib/mysql/ --with-mysql
其中标红的地方为mysql的2个路径,我在这个地方偷懒用的直接是yum install的方式安装的,所以路径为默认的这个。如果是自定义的,比如/u01/mysql之类的,那么路径就改成相应的就可以了。
2.make
这一步会根据上一步生成的makefile来进行make,但之前的configure里面,生成makefile的时候,是用的32位的包,所以需要ln一下,使用64位的包:
ln -s /usr/lib64/mysql/* /usr/lib/mysql/,再执行autogen.sh,再执行make
3.make install
二.使用
首先,看看sysbench支持哪些功能参数:
[root@monsrv bin]# sysbench --hlp Unknown option: --hlp. Usage: sysbench [general-options]... --test=<test-name> [test-options]... command General options: --num-threads=N number of threads to use [1] --max-requests=N limit for total number of requests [10000] --max-time=N limit for total execution time in seconds [0] --forced-shutdown=STRING amount of time to wait after --max-time before forcing shutdown [off] --thread-stack-size=SIZE size of stack per thread [32K] --init-rng=[on|off] initialize random number generator [off] --test=STRING test to run --debug=[on|off] print more debugging info [off] --validate=[on|off] perform validation checks where possible [off] --help=[on|off] print help and exit --version=[on|off] print version and exit Compiled-in tests: fileio - File I/O test cpu - CPU performance test memory - Memory functions speed test threads - Threads subsystem performance test mutex - Mutex performance test oltp - OLTP test Commands: prepare run cleanup help version See ‘sysbench --test=<name> help‘ for a list of options for each test.
从帮助可以看出,sysbench的测试主要包括以下几个方面:
(1)磁盘io性能
(2)cpu性能
(3)内存分配及传输速度
(4)线程性能
(5)mutex性能
(6)OLTP基准测试
2.1 测试fileio命令帮助:
[root@monsrv bin]# sysbench --test=fileio help sysbench 0.4.12: multi-threaded system evaluation benchmark fileio options: --file-num=N number of files to create [128] --file-block-size=N block size to use in all IO operations [16384] --file-total-size=SIZE total size of files to create [2G] --file-test-mode=STRING test mode {seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw} --file-io-mode=STRING file operations mode { sync,async,fastmmap,slowmmap} [sync] --file-async-backlog=N number of asynchronous operatons to queue per thread [128] --file-extra-flags=STRING additional flags to use on opening files { sync,dsync,direct} [] --file-fsync-freq=N do fsync() after this number of requests (0 - don‘t use fsync()) [100] --file-fsync-all=[on|off] do fsync() after each write operation [off] --file-fsync-end=[on|off] do f