测试MySQL数据库性能有什么工具
admin
2023-04-18 08:44:18
0

本篇文章给大家主要讲的是关于测试MySQL数据库性能有什么工具的内容,感兴趣的话就一起来看看这篇文章吧,相信看完测试MySQL数据库性能有什么工具对大家多少有点参考价值吧。                                                          

[root@wallet01 ~]# yum install -y make automake libtool libaio-devel pkgconfig mysql-devel

[root@wallet01 ~]# git clone https://github.com/akopytov/sysbench.git
Initialized empty Git repository in /root/sysbench/.git/
remote: Enumerating objects: 131, done.
remote: Counting objects: 100% (131/131), done.
remote: Compressing objects: 100% (95/95), done.
remote: Total 9597 (delta 71), reused 70 (delta 32), pack-reused 9466
Receiving objects: 100% (9597/9597), 4.13 MiB | 61 KiB/s, done.
Resolving deltas: 100% (6842/6842), done.

[root@wallet01 ~]# cd sysbench
[root@wallet01 sysbench]# ./autogen.sh
[root@wallet01 sysbench]# ./configure
[root@wallet01 sysbench]# make
[root@wallet01 sysbench]# make install

[root@wallet01 ~]# sysbench --help
Usage:
  sysbench [options]... [testname] [command]
Commands implemented by most tests: prepare run cleanup help
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]
  
Pseudo-Random Numbers Generator options:
  --rand-type=STRING random numbers distribution {uniform,gaussian,special,pareto} [special]
  --rand-spec-iter=N number of iterations used for numbers generation [12]
  --rand-spec-pct=N  percentage of values to be treated as 'special' (for special distribution) [1]
  --rand-spec-res=N  percentage of 'special' values to use (for special distribution) [75]
  --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]
  
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]
  
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]
  
Compiled-in database drivers:
  mysql - MySQL driver
  
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]
  
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
See 'sysbench  help' for a list of options for each test.

[root@wallet01 ~]# cd /usr/local/share/sysbench
[root@wallet01 sysbench]# ls -l
total 64
-rwxr-xr-x 1 root root  1452 Jan 10 08:47 bulk_insert.lua
-rw-r--r-- 1 root root 14369 Jan 10 08:47 oltp_common.lua
-rwxr-xr-x 1 root root  1290 Jan 10 08:47 oltp_delete.lua
-rwxr-xr-x 1 root root  2415 Jan 10 08:47 oltp_insert.lua
-rwxr-xr-x 1 root root  1265 Jan 10 08:47 oltp_point_select.lua
-rwxr-xr-x 1 root root  1649 Jan 10 08:47 oltp_read_only.lua
-rwxr-xr-x 1 root root  1824 Jan 10 08:47 oltp_read_write.lua
-rwxr-xr-x 1 root root  1118 Jan 10 08:47 oltp_update_index.lua
-rwxr-xr-x 1 root root  1127 Jan 10 08:47 oltp_update_non_index.lua
-rwxr-xr-x 1 root root  1440 Jan 10 08:47 oltp_write_only.lua
-rwxr-xr-x 1 root root  1919 Jan 10 08:47 select_random_points.lua
-rwxr-xr-x 1 root root  2118 Jan 10 08:47 select_random_ranges.lua
drwxr-xr-x 4 root root  4096 Jan 10 08:47 tests

[root@wallet01 sysbench]# ./oltp_read_write.lua help
sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
oltp_read_write.lua options:
  --auto_inc[=on|off]           Use AUTO_INCREMENT column as Primary Key (for MySQL), or its alternatives in other DBMS. When disabled, use client-generated IDs [on]
  --create_secondary[=on|off]   Create a secondary index in addition to the PRIMARY KEY [on]
  --delete_inserts=N            Number of DELETE/INSERT combinations per transaction [1]
  --distinct_ranges=N           Number of SELECT DISTINCT queries per transaction [1]
  --index_updates=N             Number of UPDATE index queries per transaction [1]
  --mysql_storage_engine=STRING Storage engine, if MySQL is used [innodb]
  --non_index_updates=N         Number of UPDATE non-index queries per transaction [1]
  --order_ranges=N              Number of SELECT ORDER BY queries per transaction [1]
  --pgsql_variant=STRING        Use this PostgreSQL variant when running with the PostgreSQL driver. The only currently supported variant is 'redshift'. When enabled, create_secondary is 

automatically disabled, and delete_inserts is set to 0
  --point_selects=N             Number of point SELECT queries per transaction [10]
  --range_selects[=on|off]      Enable/disable all range SELECT queries [on]
  --range_size=N                Range size for range SELECT queries [100]
  --secondary[=on|off]          Use a secondary index in place of the PRIMARY KEY [off]
  --simple_ranges=N             Number of simple range SELECT queries per transaction [1]
  --skip_trx[=on|off]           Don't start explicit transactions and execute all queries in the AUTOCOMMIT mode [off]
  --sum_ranges=N                Number of SELECT SUM() queries per transaction [1]
  --table_size=N                Number of rows per table [10000]
  --tables=N                    Number of tables [1]
  
[root@wallet01 ~]# mysql -uroot -pabcd.1234
mysql> create database sbtest;
Query OK, 1 row affected (0.02 sec)

mysql> grant all on sbtest.* to 'sbtest'@'%' identified by 'sbtest';  
Query OK, 0 rows affected (0.06 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
  
[root@wallet01 ~]# sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest \
--threads=10 \
/usr/local/share/sysbench/oltp_read_write.lua --tables=10 --table_size=100000 prepare

sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
Initializing worker threads...
Creating table 'sbtest10'...
Creating table 'sbtest6'...
Creating table 'sbtest7'...
Creating table 'sbtest8'...
Creating table 'sbtest9'...
Creating table 'sbtest4'...
Creating table 'sbtest3'...
Creating table 'sbtest5'...
Creating table 'sbtest2'...
Creating table 'sbtest1'...
Inserting 100000 records into 'sbtest1'
Inserting 100000 records into 'sbtest6'
Inserting 100000 records into 'sbtest9'
Inserting 100000 records into 'sbtest10'
Inserting 100000 records into 'sbtest4'
Inserting 100000 records into 'sbtest3'
Inserting 100000 records into 'sbtest2'
Inserting 100000 records into 'sbtest7'
Inserting 100000 records into 'sbtest5'
Inserting 100000 records into 'sbtest8'
Creating a secondary index on 'sbtest1'...
Creating a secondary index on 'sbtest6'...
Creating a secondary index on 'sbtest10'...
Creating a secondary index on 'sbtest9'...
Creating a secondary index on 'sbtest5'...
Creating a secondary index on 'sbtest2'...
Creating a secondary index on 'sbtest7'...
Creating a secondary index on 'sbtest3'...
Creating a secondary index on 'sbtest4'...
Creating a secondary index on 'sbtest8'...

[root@wallet01 ~]# sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest \
--threads=10 --time=120 --report-interval=10 \
/usr/local/share/sysbench/oltp_read_write.lua --tables=10 --table_size=100000 run

sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 10
Report intermediate results every 10 second(s)
Initializing random number generator from current time
Initializing worker threads...
Threads started!
[ 10s ] thds: 10 tps: 53.79 qps: 1092.88 (r/w/o: 765.65/218.76/108.48) lat (ms,95%): 331.91 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 10 tps: 54.90 qps: 1099.92 (r/w/o: 770.01/220.00/109.90) lat (ms,95%): 320.17 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 10 tps: 60.00 qps: 1198.19 (r/w/o: 838.60/239.60/120.00) lat (ms,95%): 277.21 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 10 tps: 55.90 qps: 1119.41 (r/w/o: 784.00/223.60/111.80) lat (ms,95%): 308.84 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 10 tps: 57.60 qps: 1138.70 (r/w/o: 796.60/227.60/114.50) lat (ms,95%): 248.83 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 10 tps: 64.70 qps: 1306.90 (r/w/o: 915.60/261.20/130.10) lat (ms,95%): 231.53 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 10 tps: 62.30 qps: 1243.40 (r/w/o: 869.60/249.20/124.60) lat (ms,95%): 240.02 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 10 tps: 63.20 qps: 1267.40 (r/w/o: 887.40/253.60/126.40) lat (ms,95%): 219.36 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 10 tps: 60.70 qps: 1214.00 (r/w/o: 849.80/242.80/121.40) lat (ms,95%): 287.38 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 10 tps: 59.10 qps: 1180.10 (r/w/o: 826.00/236.00/118.10) lat (ms,95%): 257.95 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 10 tps: 57.40 qps: 1149.70 (r/w/o: 805.00/229.80/114.90) lat (ms,95%): 277.21 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 10 tps: 61.00 qps: 1218.29 (r/w/o: 852.59/243.80/121.90) lat (ms,95%): 244.38 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            99624
        write:                           28464
        other:                           14232
        total:                           142320
    transactions:                        7116   (59.21 per sec.)
    queries:                             142320 (1184.27 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)
General statistics:
    total time:                          120.1739s
    total number of events:              7116
Latency (ms):
         min:                                   50.46
         avg:                                  168.79
         max:                                 1260.52
         95th percentile:                      262.64
         sum:                              1201077.94
Threads fairness:
    events (avg/stddev):           711.6000/5.77
    execution time (avg/stddev):   120.1078/0.04
    
[root@wallet01 ~]# sysbench --mysql-host=localhost --mysql-port=3306 --mysql-user=sbtest --mysql-password=sbtest \
--threads=10 \
/usr/local/share/sysbench/oltp_read_write.lua --tables=10 --table_size=100000 cleanup

sysbench 1.0.16 (using bundled LuaJIT 2.1.0-beta2)
Dropping table 'sbtest1'...
Dropping table 'sbtest2'...
Dropping table 'sbtest3'...
Dropping table 'sbtest4'...
Dropping table 'sbtest5'...
Dropping table 'sbtest6'...
Dropping table 'sbtest7'...
Dropping table 'sbtest8'...
Dropping table 'sbtest9'...
Dropping table 'sbtest10'...

以上关于测试MySQL数据库性能有什么工具详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。 

相关内容

热门资讯

今日重磅消息“新众亿炸/金/花... 网上科普关于“新众亿炸/金/花有没有挂”话题很是火热,小编也是针对新众亿炸/金/花作*弊开挂的方法以...
【第一财经】“新毛豆互娱到底是... 【第一财经】“新毛豆互娱到底是不是挂?”(其实是有挂)您好,新毛豆互娱这个游戏其实有挂的,确实是有挂...
终于懂了“欢乐情怀开挂器?”(... 有 亲,根据资深记者爆料欢乐情怀是可以开挂的,确实有挂(咨询软件无需打开...
紫燕食品创新研究院:以科研赋能... 在消费升级驱动食品行业高质量发展的背景下,研发创新成为企业核心竞争力的关键支撑。作为卤味行业领军企业...
玩家攻略科普“桂麻圈怎么开挂?... 家人们!今天小编来为大家解答桂麻圈透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里买很多...
【第一消息】“海阔麻将到底是不... 有 亲,根据资深记者爆料海阔麻将是可以开挂的,确实有挂(咨询软件无需打开...
终于懂了“阿当福建麻将到底有挂... 网上科普关于“阿当福建麻将有没有挂”话题很是火热,小编也是针对阿当福建麻将作*弊开挂的方法以及开挂对...
今日重磅消息“友间十三张真的有... 您好:友间十三张这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游...
终于明白“友谊互动是不是有挂?... 有 亲,根据资深记者爆料友谊互动是可以开挂的,确实有挂(咨询软件无需打开...
今日重大通报“开心跑胡子有没有... 您好:开心跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...