logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

sysbench - multi-threaded benchmark tool for database systems

Cpu Options

--cpu-max-prime=N upper limit for primes generator [10000]

Description

       SysBench is a modular, cross-platform and multi-threaded benchmark tool for evaluating OS parameters that
       are important for a system running a database under intensive load.

       The idea of this benchmark suite is to quickly get an impression about system performance without setting
       up complex database benchmarks or even without installing a database at all.

       The  design  is very simple. SysBench runs a specified number of threads and they all execute requests in
       parallel. The actual workload produced by requests depends on the specified  test  mode.  You  can  limit
       either the total number of requests or the total time for the benchmark, or both.

       Compiled-in database drivers:

       •  mysql - MySQL driver

       •  pgsql - PostgreSQL driver

       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

       Available test modes are implemented by compiled-in modules, and SysBench was designed to make adding new
       test modes an easy task. Each test mode may have additional (or workload-specific) options.

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]

General Database Options

--db-driver=STRING
              specifies database driver to use ('help' to get list of available drivers) [mysql]

       --db-ps-mode=STRING
              prepared statements usage mode {auto, disable} [auto]

       --db-debug[=on|off]
              print database-specific debug information [off]

General Options

--threads=N
              number of threads to use [1]

       --events=N
              limit for total number of events [0]

       --time=N
              limit for total execution time in seconds [10]

       --forced-shutdown=STRING
              number  of  seconds  to  wait  after the --time limit before forcing shutdown, or 'off' to disable
              [off]

       --thread-stack-size=SIZE
              size of stack per thread [64K]

       --rate=N
              average transactions rate. 0 for unlimited rate [0]

       --report-interval=N
              periodically report intermediate statistics with a  specified  interval  in  seconds.  0  disables
              intermediate  reports  [0]  --report-checkpoints=[LIST,...]  dump  full  statistics  and reset all
              counters at  specified  points  in  time.  The  argument  is  a  list  of  comma-separated  values
              representing  the  amount  of time in seconds elapsed from start of test when report checkpoint(s)
              must be performed. Report checkpoints are off by default. []

       --debug[=on|off]
              print more debugging info [off]

       --validate[=on|off]
              perform validation checks where possible [off]

       --help[=on|off]
              print help and exit [off]

       --version[=on|off]
              print version and exit [off]

       --config-file=FILENAME
              File containing command line options

       --tx-rate=N
              deprecated alias for --rate [0]

       --max-requests=N
              deprecated alias for --events [0]

       --max-time=N
              deprecated alias for --time [0]

       --num-threads=N
              deprecated alias for --threads [1]

Log Options

--verbosity=N
              verbosity level {5 - debug, 0 - only critical messages} [3]

       --percentile=N
              percentile to calculate in latency statistics (1-100). Use the  special  value  of  0  to  disable
              percentile calculations [95]

       --histogram[=on|off]
              print latency histogram in report [off]

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]

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]

Mysql Options

--mysql-host=[LIST,...]
              MySQL server host [localhost]

       --mysql-port=[LIST,...]
              MySQL server port [3306]

       --mysql-socket=[LIST,...]
              MySQL socket

       --mysql-user=STRING
              MySQL user [sbtest]

       --mysql-password=STRING
              MySQL password []

       --mysql-db=STRING
              MySQL database name [sbtest]

       --mysql-ssl[=on|off]
              use SSL connections, if available in the client library [off]

       --mysql-ssl-cipher=STRING
              use specific cipher for SSL connections []

       --mysql-compression[=on|off]
              use compression, if available in the client library [off]

       --mysql-debug[=on|off]
              trace all client library calls [off] --mysql-ignore-errors=[LIST,...] list of errors to ignore, or
              "all" [1213,1020,1205]

       --mysql-dry-run[=on|off]
              Dry run, pretend that all MySQL client API calls are successful without executing them [off]

Name

sysbench - multi-threaded benchmark tool for database systems

Pgsql Options

--pgsql-host=STRING
              PostgreSQL server host [localhost]

       --pgsql-port=N
              PostgreSQL server port [5432]

       --pgsql-user=STRING
              PostgreSQL user [sbtest] --pgsql-password=STRING PostgreSQL password []

       --pgsql-db=STRING
              PostgreSQL database name [sbtest]

Pseudo-Random Numbers Generator Options

--rand-type=STRING
              random numbers distribution {uniform,gaussian,pareto} [special]

       --rand-seed=N
              seed for random number generator. When 0, the current time is used as a RNG seed. [0]

       --rand-pareto-h=N
              parameter h for pareto distribution [0.2]

       --rand-zipfian-exp=N
              shape parameter (exponent, theta) for the Zipfian distribution [0.8]

See Also

       Upstream    provided    html-formatted    manual,    describing     the     features     of     sysbench:
       /usr/share/doc/sysbench/manual.html

                                                05 February 2025                                     SYSBENCH(1)

Synopsis

sysbench [common-options] --test=name [test-options] <command>

       Commands: prepareruncleanuphelpversion

Thread Options

--thread-yields=N number of yields to do per request [1000]

       --thread-locks=N
              number of locks per thread [8]

See Also