介绍
- SysBench 是一款开源的、跨平台的、模块化的、多线程的性能测试工具, 可以执行 CPU/内存/线程/IO/数据库 等方面的性能测试. 用于评估操作系统的性能参数.
* oltp_*.lua: a collection of OLTP-like database benchmarks
* fileio: a filesystem-level benchmark
* cpu: a simple CPU benchmark
* memory: a memory access benchmark
* threads: a thread-based scheduler benchmark
* mutex: a POSIX mutex benchmark
- 主要包含如下几种测试
安装 sysbench
- yum -y install sysbench
一 、CPU性能测试 (cpu测试主要是进行素数的加法运算)
- 帮助命令 sysbench cpu help
sysbench 1.0.17 (using system LuaJIT 2.0.4)
cpu options:
--cpu-max-prime=N upper limit for primes generator [10000] 最大质数发生器数量。默认是10000
- 测试命令 sysbench cpu --cpu-max-prime=20000 --threads=2 run
二、内存分配及传输速度
- 帮助命令 sysbench memory help
sysbench 1.0.17 (using system LuaJIT 2.0.4)
memory options:
--memory-block-size=SIZE size of memory block for test [1K]
--memory-total-size=SIZE total size of data to transfer [100G]
--memory-scope=STRING memory access scope {global,local} [global]
--memory-hugetlb[=on|off] allocate memory from HugeTLB pool [off]
--memory-oper=STRING type of memory operations {read, write, none} [write]
--memory-access-mode=STRING memory access mode {seq,rnd} [seq]
- 测试命令 sysbench memory --memory-block-size=8k --memory-total-size=2G run
三、磁盘IO性能测试
- 帮助命令 sysbench fileio help
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,mmap} [sync]
--file-async-backlog=N number of asynchronous operatons to queue per thread [128]
--file-extra-flags=[LIST,...] list of additional flags to use to open 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 fsync() at the end of test [on]
--file-fsync-mode=STRING which method to use for synchronization {fsync, fdatasync} [fsync]
--file-merged-requests=N merge at most this number of IO requests if possible (0 - don't merge) [0]
--file-rw-ratio=N reads/writes ratio for combined test [1.5]
- 测试命令
- 1、prepare阶段,生成需要的测试文件,完成后会在当前目录下生成很多小文件
sysbench fileio --threads=2 --file-total-size=1G --file-test-mode=rndrw prepare
- 2、run阶段
sysbench fileio --threads=2 --file-total-size=1G --file-test-mode=rndrw run
- 3、清理测试时生成的文件
sysbench fileio --threads=2 --file-total-size=1G --file-test-mode=rndrw cleanup
四、 mutex性能测试
- 帮助命令 sysbench mutex help
mutex options:
--mutex-num=N total size of mutex array [4096] 数组互斥的总大小
--mutex-locks=N number of mutex locks to do per thread [50000] 每个线程互斥锁的数量
--mutex-loops=N number of empty loops to do outside mutex lock [10000] 内部互斥锁的空循环数量
- 命令测试 sysbench mutex --threads=2 --mutex-num=4096 --mutex-locks=50000 --mutex-loops=10000 run
五、POSXI线程性能
- 帮助测试 sysbench threads help
threads options:
--thread-yields=N number of yields to do per request [1000] 每个请求产生多少个线程。
--thread-locks=N number of locks per thread [8] 每个线程的锁的数量
- 命令测试 sysbench threads --threads=2 --thread-yields=100 --thread-locks=4 run
六、数据库性能(OLTP基准测试)
待定后续~
- 参考官方文档:https://github.com/akopytov/sysbench