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]
  • –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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值