sysbench⽂档
⽂章⽬录
sysbench
针对数据库系统的多线程基准测试⼯具(benchmark tool)
命令格式
sysbench [common-options] --test=name [test-options] <command>
Command有: prepare run cleanup help version
详解
sysbench是⼀个模块化、跨平台以及多线程的基准测试⼯具
⽤来评估操作系统参数,这些参数对于正在运⾏⼀个⾼负载的数据库的系统⾮常重要
这个benchmark组件的核⼼思想是快速获取系统性能的印象,⽽不需要安装复杂的数据库benchmark或者甚⾄根本不需要安装数据库。
设计⾮常简单。Sysbench运⾏指定数量的线程,这些线程并发地执⾏请求。
请求产⽣的实际⼯作负载取决于特定的测试模式
你可以限制要么是请求的总数,或者是benchmark的总运⾏时间,或者两者都⾏
内置数据库驱动
mysql MySQL驱动
pgsql PostgreSQL驱动
内置测试
fileio ⽂件IO测试
cpu CPU性能测试
memory 内存功能速度测试
threads 线程⼦系统性能测试
mutex 互斥锁性能测试
注意:
可⽤的测试模式是通过内置模块实现的。并且Sysbench被设计成⾮常容易去添加新的测试模式。
每个测试模式都有额外的其他选项的
通⽤选项
–num-threads=N 使⽤的线程数[1]
–max-requests=N 请求总数的限制[10000]
–max-time=N 以秒为单位的总的执⾏时间 [0]
–forced-shutdown=STRING 在等了--max-time的时间之后,才强制关闭[off]
–thread-stack-size=SIZE 每个线程的线程栈⼤⼩64K]
–tx-rate=N ⽬标事务处理速率就是tps(tps)[0]
–report-interval=N 定期以指定的时间间隔(以秒为单位)报告中间统计信息。 0禁⽤中间报告[0]
–report-checkpoints=转储完整的统计信息并在指定的时间点重置所有计数器。 该参数是逗号分隔值的列表,表⽰当必须执⾏checkpoint(s)时,从开始测试到此刻所经过的秒数。 默认情况下,报告检查点处于关闭状态。[]
–test=STRING 要运⾏的测试
–debug=[on|off] 打印更多的调试信息[off]
–validate=[on|off] 当可能的时候执⾏有效性检查[off]
–help=[on|off] 答应help菜单并退出
–version=[on|off] 打印版本信息并退出[off]
–rand-type=STRING 随机数分布{uniform,gaussian,special,pareto} [special]
–rand-spec-iter=N ⽤于数字⽣成器的迭代数[12]
–rand-spec-pct=N 被视为“特殊”(特殊分配)的值的百分⽐[1]
–rand-spec-res=N 要使⽤的“特殊”值的百分⽐(⽤于特殊分配)[75]
–rand-seed=N 随机数⽣成器的种⼦,当0 [0]时忽略
–rand-pareto-h=N 参数h⽤于pareto分布[0.2]
–config-file=FILENAME 包含命令⾏选项的⽂件名
⽇志选项
–verbosity=N 啰嗦级别{5 - debug, 0 - only critical messages} [3]
mysql帮助文档–percentile=N 查询响应时间的百分数排名,使⽤0可以关掉百分位统计。[95] percentile rank of query response times to count. Use the special value of 0 to disable percentile statistics. [95]
通⽤数据库选项
–db-driver=STRING 指定要⽤的数据库驱动
–db-ps-mode=STRING 使⽤prepared语句模式(防sql注⼊攻击的那种东西) {auto, disable} [auto]
–db-debug=[on|off] 打印数据库特定的调试信息 [off]
mysql选项
–mysql-host=[LIST,…] 服务端主机[localhost]
–mysql-port=[LIST,…] 服务端端⼝[3306]
–mysql-socket=[LIST,…] MySQL套接字
–mysql-user=STRING MySQL⽤户[sbtest]
–mysql-password=STRING MySQL密码[]
–mysql-db=STRING MySQL数据库名[sbtest]
–mysql-table-engine=STRING 测试表使⽤的存储引擎{myisam,innodb,bdb,heap,ndbcluster,federated} [innodb]–mysql-engine-trx=STRING 使⽤的存储引擎是否是事务性的{yes,no,auto} [auto]
–mysql-ssl=[on|off] 如果客户端库⽀持SSL连接的话,使⽤SSL连接[off]
–mysql-compression=[on|off] 如果客户端库⽀持的话,使⽤压缩[off]
–myisam-max-rows=N MyISAM表的最⼤⾏参数 [1000000]
–mysql-debug=[on|off] dump所有的客户端库的调⽤[off]
–mysql-ignore-errors=[LIST,…] 要忽略的错误的列表,或者写成all [1213,1020,1205]
–mysql-dry-run=[on|off] 空运⾏,装作所有的MySQL客户端API调⽤都是成功的,⽽不执⾏他们[off]
⽂件IO选项
–file-num=N 创建的⽂件数[128]
–file-block-size=N 在所有的IO操作中使⽤的块⼤⼩[16384]
–file-total-size=SIZE 要创建的⽂件⼤⼩的总数[2G]
–file-test-mode=STRING 测试模式{seqwr, seqrewr, seqrd, rndrd, rndwr, rndrw}
–file-io-mode=STRING ⽂件操作模式{sync,async,mmap} [sync]
–file-async-backlog=N 每线程排队的异步操作数[128]
–file-extra-flags=STRING ⽂件打开时使⽤的额外的标志{sync,dsync,direct} []
–file-fsync-freq=N 在多少个请求之后做fsync() (0 - don’t use fsync()) [100]
–file-fsync-all=[on|off] 在每个写操作之后做fsync() [off]
–file-fsync-end=[on|off] 在测试结束的时候做fsync[on]
–file-fsync-mode=STRING 使⽤哪种⽅式进⾏同步{fsync, fdatasync} [fsync]
–file-merged-requests=N 如果可能的话,合并最多N次IO请求 (0 - don’t merge) [0]
–file-rw-ratio=N 读/写的⽐率[1.5]
CPU选项
–cpu-max-prime=N 素数发⽣器的上限[10000]
内存选项
–memory-block-size=SIZE 测试⽤的内存块⼤⼩[1K]
–memory-total-size=SIZE 总的要变换的数据⼤⼩[100G]
–memory-scope=STRING 内存访问作⽤域{global,local} [global]
–memory-hugetlb=[on|off] 从HugeTLB池中分配内存[off]
–memory-oper=STRING 内存操作的类型{read,write,none} [write]
–memory-access-mode=STRING 内存访问模式{seq,rnd} [seq]
线程选项
–thread-yields=N 每个请求做的yields数量[1000]
–thread-locks=N 每个线程的锁的数量[8]
互斥锁选项
–mutex-num=N mutex数组的⼤⼩[4096]
–mutex-locks=N 每个线程做的互斥锁加锁操作[50000]
–mutex-loops=N 在互斥锁加锁内做的空的循环次数[10000]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论