时间:2021-07-01 10:21:17 帮助过:17人阅读
最近用sysbench进行了较多的性能测试,也总结一下它的特点和用法和需要注意的事项。sysbench是一个多线程性能测试工具,可以进行
最近用sysbench进行了较多的性能测试,也总结一下它的特点和用法和需要注意的事项。sysbench是一个多线程性能测试工具,可以进行CPU/内存/IO/数据库等性能测试。不过我绝大多数的时候都是用它来对数据库(MySQL)进行oltp测试。它能测哪些东西,怎么测让我从它的命令帮助来回答。
~/zbs$ sysbench --help  
Missing required command argument.  
Usage:  
  sysbench [general-options]... --test=
上面就大概的用法,--test=指定我们需要测什么类型,那么--test有哪几种类型呢?fileio/cpu/memory/threads/mutex,不好意思前面这几个我都没测过,我主要是用它来测数据库的性能,,但为什么没有数据库这个选项呢,这是我是用了最新的版本0.5,它与0.4的版本最大区别在于支持多表测试,执行实时打印统计信息,支持自定义lua脚本来设置测试行为。
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 
如果你用sysbench0.4大概会看到如下,请注意oltp这个选项就是测数据库用的。
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 
看完了测试模式之后,那么它有一些什么主要的其他控制参数呢?首先说这个每个测试模式自己特有的参数怎么擦看 sysbench --test=
~$ sysbench --test=oltp help  
sysbench 0.4.12:  multi-threaded system evaluation benchmark  
  
oltp options:  
  --oltp-test-mode=STRING         test type to use {simple,complex,nontrx,sp} [complex]  
  --oltp-reconnect-mode=STRING    reconnect mode {session,transaction,query,random} [session]  
  --oltp-sp-name=STRING           name of store procedure to call in SP test mode []  
  --oltp-read-only=[on|off]       generate only 'read' queries (do not modify database) [off]  
  --oltp-skip-trx=[on|off]        skip BEGIN/COMMIT statements [off]  
  --oltp-range-size=N             range size for range queries [100]  
  --oltp-point-selects=N          number of point selects [10]  
  --oltp-simple-ranges=N          number of simple ranges [1]  
  --oltp-sum-ranges=N             number of sum ranges [1]  
  --oltp-order-ranges=N           number of ordered ranges [1]  
  --oltp-distinct-ranges=N        number of distinct ranges [1]  
  --oltp-index-updates=N          number of index update [1]  
  --oltp-non-index-updates=N      number of non-index updates [1]  
  --oltp-nontrx-mode=STRING       mode for non-transactional test {select, update_key, update_nokey, insert, delete} [select]  
  --oltp-auto-inc=[on|off]        whether AUTO_INCREMENT (or equivalent) should be used on id column [on]  
  --oltp-connect-delay=N          time in microseconds to sleep after connection to database [10000]  
  --oltp-user-delay-min=N         minimum time in microseconds to sleep after each request [0]  
  --oltp-user-delay-max=N         maximum time in microseconds to sleep after each request [0]  
  --oltp-table-name=STRING        name of test table [sbtest]  
  --oltp-table-size=N             number of records in test table [10000]  
  --oltp-dist-type=STRING         random numbers distribution {uniform,gaussian,special} [special]  
  --oltp-dist-iter=N              number of iterations used for numbers generation [12]  
  --oltp-dist-pct=N               percentage of values to be treated as 'special' (for special distribution) [1]  
  --oltp-dist-res=N               percentage of 'special' values to use (for special distribution) [75]  
  
General database options:  
  
  --db-driver=STRING  specifies database driver to use ('help' to get list of available drivers)  
  --db-ps-mode=STRING prepared statements usage mode {auto, disable} [auto]  
  
  
Compiled-in database drivers:  
  mysql - MySQL driver  
  
mysql options:  
  --mysql-host=[LIST,...]       MySQL server host [localhost]  
  --mysql-port=N                MySQL server port [3306]  
  --mysql-socket=STRING         MySQL socket  
  --mysql-user=STRING           MySQL user [sbtest]  
  --mysql-password=STRING       MySQL password []  
  --mysql-db=STRING             MySQL database name [sbtest]  
  --mysql-table-engine=STRING   storage engine to use for the test table {myisam,innodb,bdb,heap,ndbcluster,federated} [innodb]  
  --mysql-engine-trx=STRING     whether storage engine used is transactional or not {yes,no,auto} [auto]  
  --mysql-ssl=[on|off]          use SSL connections, if available in the client library [off]  
  --myisam-max-rows=N           max-rows parameter for MyISAM tables [1000000]  
  --mysql-create-options=STRING additional options passed to CREATE TABLE []