1
SysBench: System evaluation benchmark
5
The idea is to quickly get an impression about system performance for MySQL
6
usage without setting up complex benchmark and even without installing MySQL.
7
In some cases this is very helpful. This is also the reason for having
8
everything in simple file not depending on any external libraries.
11
This benchmark was designed for identifying basic system parameters, as they
12
are important for system using MySQL (w Innodb) under intensive load.
13
Handling of IO in case of many parallel requests, checked as well as
14
memory allocation/transfer speed and scheduler performance.
15
CPU is benchmarked by using 64bit integer manipulation using Euklid
16
algorithms for prime number computation.
17
Benchmarks are designed to show benefit of multiple CPUs as well as of
18
multiple hard drives, battery backed up write cache.
20
Sequential read/writes test is a bit tricky, it means request are just given
21
out sequentially, but there is no guaranty they will be actually executed this
22
way, it could result in some sort of random IO in case of bad IO or threads
26
See the file INSTALL for generic installation instructions.
27
In most cases you will need the following steps:
28
./configure (or ./configure --without-mysql to compile w/o MySQL support)
34
sysbench [<general-options>] [<test-options>] <command>
35
To see available options, tests and commands type:
38
sysbench --test=<name> help
39
to see options supported by a specified test. Default values for the options
40
are specified in brackets after description.
41
Currently supported commands are help, run and create-db (for the MySQL test).
42
The latter will create a table and fill it with values required to run the
43
MySQL test, using database, table name and size passed as MySQL test options.
46
* Make sure number of threads is at least 2 times of numbers CPUs you have.
47
* For the fileio test make sure you're using file size which is at least 5
48
times larger than your memory for reliable results. Make sure to use enough
49
files to keep size of each less than 2/4G.
50
* For the threads test --thread-locks should be at least 2 times less than
52
* If you're running on 64bit CPU make sure to compile 64bit binary for good
57
This test is designed to be easily extensible to add your own test operations,
58
as well as create operation mixes to benchmark some particular load.
59
The architecture is very simple. Several threads are started and they all
60
run in the loop asking for requests from get_request() function, until
61
NULL operation is received. For each request execute_request() is executed,
62
which runs it as designed. This allows to design test highly scalable as well
63
as producing large amount of conflicts if needed for test case.
66
Please report any bugs you encounter to <alexeyk@mysql.com>.