当前位置:网站首页>mysql自帶的性能測試工具mysqlslap執行壓力測試
mysql自帶的性能測試工具mysqlslap執行壓力測試
2022-06-26 04:02:00 【程序猿(攻城獅)】
對於按照配置的數據庫,需要對其基本的性能有個基本的了解,當系統整體性能下降或者不能提昇的時候,就需要考慮,是否由於數據庫的性能限制導致的結果,此時最好有數據庫的性能測試結果作為參考。
mysqlslap [options]
-?, --help Display this help and exit.
-a, --auto-generate-sql #自動生成測試錶和數據
--auto-generate-sql-add-autoincrement #對生成的錶自動添加auto_increment列
--auto-generate-sql-execute-number=#
Set this number to generate a set number of queries to
run.
--auto-generate-sql-guid-primary
Add GUID based primary keys to auto-generated tables.
--auto-generate-sql-load-type=name #測試語句的類型: mixed, update, write, key, or
read; default is mixed.
--auto-generate-sql-secondary-indexes=#
Number of secondary indexes to add to auto-generated
tables.
--auto-generate-sql-unique-query-number=#
Number of unique queries to generate for automatic tests.
--auto-generate-sql-unique-write-number=#
Number of unique queries to generate for
auto-generate-sql-write-number.
--auto-generate-sql-write-number=#
Number of row inserts to perform for each thread (default
is 100).
--commit=# Commit records every X number of statements.
-C, --compress Use compression in server/client protocol.
-c, --concurrency=name
Number of clients to simulate for query to run.
--create=name File or string to use create tables.
--create-schema=name
Schema to run tests in.
--csv[=name] Generate CSV output to named file or to stdout if no file
is named.
-#, --debug[=#] This is a non-debug version. Catch this and exit.
--debug-check This is a non-debug version. Catch this and exit.
-T, --debug-info This is a non-debug version. Catch this and exit.
--default-auth=name Default authentication client-side plugin to use.
-F, --delimiter=name
Delimiter to use in SQL statements supplied in file or
command line.
--detach=# Detach (close and reopen) connections after X number of
requests.
--enable-cleartext-plugin
Enable/disable the clear text authentication plugin.
-e, --engine=name Storage engine to use for creating the table.
-h, --host=name Connect to host.
-i, --iterations=# Number of times to run the tests.
--no-drop Do not drop the schema after the test.
-x, --number-char-cols=name
Number of VARCHAR columns to create in table if
specifying --auto-generate-sql.
-y, --number-int-cols=name
Number of INT columns to create in table if specifying
--auto-generate-sql.
--number-of-queries=#
Limit each client to this number of queries (this is not
exact).
--only-print Do not connect to the databases, but instead print out
what would have been done.
-p, --password[=name]
Password to use when connecting to server. If password is
not given it's asked from the tty.
--plugin-dir=name Directory for client-side plugins.
-P, --port=# Port number to use for connection.
--post-query=name Query to run or file containing query to execute after
tests have completed.
--post-system=name system() string to execute after tests have completed.
--pre-query=name Query to run or file containing query to execute before
running tests.
--pre-system=name system() string to execute before running tests.
--protocol=name The protocol to use for connection (tcp, socket, pipe,
memory).
-q, --query=name Query to run or file containing query to run.
--secure-auth Refuse client connecting to server if it uses old
(pre-4.1.1) protocol. Deprecated. Always TRUE
-s, --silent Run program in silent mode - no output.
-S, --socket=name The socket file to use for connection.
--sql-mode=name Specify sql-mode to run mysqlslap tool.
--ssl-mode=name SSL connection mode.
--ssl Deprecated. Use --ssl-mode instead.
(Defaults to on; use --skip-ssl to disable.)
--ssl-verify-server-cert
Deprecated. Use --ssl-mode=VERIFY_IDENTITY instead.
--ssl-ca=name CA file in PEM format.
--ssl-capath=name CA directory.
--ssl-cert=name X509 cert in PEM format.
--ssl-cipher=name SSL cipher to use.
--ssl-key=name X509 key in PEM format.
--ssl-crl=name Certificate revocation list.
--ssl-crlpath=name Certificate revocation list path.
--tls-version=name TLS version to use, permitted values are: TLSv1, TLSv1.1,
TLSv1.2
--server-public-key-path=name
File path to the server public RSA key in PEM format.
--get-server-public-key
Get server public key
-u, --user=name User for login if not current user.
-v, --verbose More verbose output; you can use this multiple times to
get even more verbose output.
-V, --version Output version information and exit.1. 單線程測試
# ./mysqlslap -a -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 0.012 seconds
Minimum number of seconds to run all queries: 0.012 seconds
Maximum number of seconds to run all queries: 0.012 seconds
Number of clients running queries: 1
Average number of queries per client: 02. 多線程測試
# ./mysqlslap -a -c 100 -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 1.608 seconds
Minimum number of seconds to run all queries: 1.608 seconds
Maximum number of seconds to run all queries: 1.608 seconds
Number of clients running queries: 100
Average number of queries per client: 0可以看出100個並發測試時,響應時間明顯比單個線程測試時的響應時間長。
3. 迭代測試
# ./mysqlslap -a -i 10 -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 0.012 seconds
Minimum number of seconds to run all queries: 0.012 seconds
Maximum number of seconds to run all queries: 0.013 seconds
Number of clients running queries: 1
Average number of queries per client: 04. 多線程迭代測試
# ./mysqlslap -a -c 100 -i 10 -uroot -p
Enter password: 5. 不同並發用戶數的測試
# ./mysqlslap -a --concurrency=50,100 --number-of-queries 1000 -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 1.312 seconds
Minimum number of seconds to run all queries: 1.312 seconds
Maximum number of seconds to run all queries: 1.312 seconds
Number of clients running queries: 50
Average number of queries per client: 20
Benchmark
Average number of seconds to run all queries: 1.581 seconds
Minimum number of seconds to run all queries: 1.581 seconds
Maximum number of seconds to run all queries: 1.581 seconds
Number of clients running queries: 100
Average number of queries per client: 106. 不同引擎的測試對比
# ./mysqlslap -a --concurrency=50,100 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb,ndbcluster -uroot -p
Enter password:
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.065 seconds
Minimum number of seconds to run all queries: 0.063 seconds
Maximum number of seconds to run all queries: 0.074 seconds
Number of clients running queries: 50
Average number of queries per client: 20
Benchmark
Running for engine myisam
Average number of seconds to run all queries: 0.072 seconds
Minimum number of seconds to run all queries: 0.071 seconds
Maximum number of seconds to run all queries: 0.073 seconds
Number of clients running queries: 100
Average number of queries per client: 10
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.744 seconds
Minimum number of seconds to run all queries: 0.641 seconds
Maximum number of seconds to run all queries: 0.849 seconds
Number of clients running queries: 50
Average number of queries per client: 20
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 0.389 seconds
Minimum number of seconds to run all queries: 0.318 seconds
Maximum number of seconds to run all queries: 0.473 seconds
Number of clients running queries: 100
Average number of queries per client: 10
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.314 seconds
Minimum number of seconds to run all queries: 1.313 seconds
Maximum number of seconds to run all queries: 1.318 seconds
Number of clients running queries: 50
Average number of queries per client: 20
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.581 seconds
Minimum number of seconds to run all queries: 1.564 seconds
Maximum number of seconds to run all queries: 1.615 seconds
Number of clients running queries: 100
Average number of queries per client: 10可以看出,平均響應速度最快的是myisam引擎,其次是innodb,最慢的是ndbcluster。ndbcluster引擎在cluster環境中,受網絡環境的影響很大。
7. 查詢性能測試(select)
ndbcluster引擎測試:
./mysqlslap --engine=ndbcluster -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=read
Enter password:
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 54.835 seconds
Minimum number of seconds to run all queries: 47.827 seconds
Maximum number of seconds to run all queries: 61.844 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 59.451 seconds
Minimum number of seconds to run all queries: 57.080 seconds
Maximum number of seconds to run all queries: 61.822 seconds
Number of clients running queries: 100
Average number of queries per client: 100innodb引擎測試:
# ./mysqlslap --engine=innodb -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=read
Enter password:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 1.886 seconds
Minimum number of seconds to run all queries: 1.877 seconds
Maximum number of seconds to run all queries: 1.895 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 2.022 seconds
Minimum number of seconds to run all queries: 1.878 seconds
Maximum number of seconds to run all queries: 2.167 seconds
Number of clients running queries: 100
Average number of queries per client: 100可以看出,innodb引擎的查詢效率更高。
8. 寫庫測試(insert)
ndbcluster引擎測試:
# ./mysqlslap --engine=ndbcluster -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=write
Enter password:
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.529 seconds
Minimum number of seconds to run all queries: 1.528 seconds
Maximum number of seconds to run all queries: 1.531 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.475 seconds
Minimum number of seconds to run all queries: 1.469 seconds
Maximum number of seconds to run all queries: 1.482 seconds
Number of clients running queries: 100
Average number of queries per client: 100innodb寫入測試:
# ./mysqlslap --engine=innodb -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=write
Enter password:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 17.523 seconds
Minimum number of seconds to run all queries: 17.409 seconds
Maximum number of seconds to run all queries: 17.637 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 15.521 seconds
Minimum number of seconds to run all queries: 15.106 seconds
Maximum number of seconds to run all queries: 15.937 seconds
Number of clients running queries: 100
Average number of queries per client: 100可以看出ndbcluster引擎的寫入效率更高。
9. 更新性能測試(update)
ndbcluster引擎測試:
# ./mysqlslap --engine=ndbcluster -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=update
Enter password:
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.474 seconds
Minimum number of seconds to run all queries: 1.474 seconds
Maximum number of seconds to run all queries: 1.475 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine ndbcluster
Average number of seconds to run all queries: 1.426 seconds
Minimum number of seconds to run all queries: 1.424 seconds
Maximum number of seconds to run all queries: 1.428 seconds
Number of clients running queries: 100
Average number of queries per client: 100innodb引擎測試:
# ./mysqlslap --engine=innodb -uroot -p --auto-generate-sql-guid-primary --concurrency=50,100 --number-of-queries=10000 --iterations=2 --number-char-cols=10 --number-int-cols=10 --auto-generate-sql --create-schema=rdb10 --auto-generate-sql-load-type=update
Enter password:
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 17.469 seconds
Minimum number of seconds to run all queries: 17.227 seconds
Maximum number of seconds to run all queries: 17.712 seconds
Number of clients running queries: 50
Average number of queries per client: 200
Benchmark
Running for engine innodb
Average number of seconds to run all queries: 15.241 seconds
Minimum number of seconds to run all queries: 15.137 seconds
Maximum number of seconds to run all queries: 15.346 seconds
Number of clients running queries: 100
Average number of queries per client: 100可以看出ndbcluster引擎性能比innodb更好。
边栏推荐
- 高性能算力中心 — RoCE — Overview
- go语言泛型在IDE中语法报错
- Detailed explanation of globalkey of flutter
- Part 4: drawing quadrilateral
- 169. most elements
- Verrouillage de lecture et d'écriture pour la synchronisation des fils
- ABP framework Practice Series (III) - domain layer in depth
- What preparation should I make before learning SCM?
- Ieda suddenly cannot find compact middle packages
- C # knowledge structure
猜你喜欢
![[QT] resource file import](/img/0f/6eff57a09edda284b833947dab16af.png)
[QT] resource file import

Alibaba cloud function computing service one click to build Z-blog personal blog

线程同步之条件变量

【掘金运营套路揭露】真心被掘金的套路....

Sorting out the examination sites of the 13th Blue Bridge Cup single chip microcomputer objective questions

Dix critères de base importants pour les essais de débogage de logiciels

【QT】对话框dialog

Conditional variables for thread synchronization

Read / write lock for thread synchronization

Matplotlib multi line chart, dot scatter chart
随机推荐
Comparison of static methods and variables with instance methods and variables
How to use EEPROM in 51 Single Chip Microcomputer?
I/O 虚拟化技术 — VFIO
Go time package: second, millisecond, nanosecond timestamp output
chrome页面录制,重放功能
Open source! Vitae model brushes the world's first again: the new coco human posture estimation model achieves the highest accuracy of 81.1ap
ipvs之ipvs0网卡
matplotlib多条折线图,点散图
Detr3d multi 2D picture 3D detection framework
763. dividing alphabetic intervals
Alibaba cloud function computing service one click to build Z-blog personal blog
169. most elements
Optimization - multi objective planning
Introduction Guide to the flutterplugin plug-in in the actual combat of flutter
Ieda suddenly cannot find compact middle packages
力扣79单词搜索
Open Camera异常分析(一)
用eclipse连mysql数据库出错然后出现图中的话是咋回事呀
Lua grammar explanation
MapReduce执行原理记录