Heim >Datenbank >MySQL-Tutorial >MySQL 压力测试工具 mysqlslap 使用总结

MySQL 压力测试工具 mysqlslap 使用总结

WBOY
WBOYOriginal
2016-06-07 17:31:251089Durchsuche

mysqlslap 可以用于模拟服务器的负载,并输出计时信息。其被包含在 MySQL 5.1 的发行包中。测试时,可以指定并发连接数,可以指定

mysqlslap 可以用于模拟服务器的负载,并输出计时信息。其被包含在 MySQL 5.1 的发行包中。测试时,可以指定并发连接数,可以指定 SQL 语句。如果没有指定 SQL 语句,mysqlslap 会自动生成查询 schema 的 SELECT 语句。

相关阅读:

mysqlslap 压力测试工具

MySQL自带的性能压力测试工具mysqlslap详解

1. 查看帮助信息。

[root@Betty libmysql]# mysqlslap --help
mysqlslap  Ver 1.0 Distrib 5.6.10, for Linux (x86_64)
Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Run a query multiple times against the server.

Usage: mysqlslap [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
The following groups are read: mysqlslap client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults          Don't read default options from any option file,
                        except for login file.
--defaults-file=#      Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
--defaults-group-suffix=#
                        Also read groups with concat(group, suffix)
--login-path=#          Read this path from the login file.
  -?, --help          Display this help and exit.
  -a, --auto-generate-sql 自动生成测试表和数据
                      Generate SQL where not supplied by file or command line.
  --auto-generate-sql-add-autoincrement 增加auto_increment一列
                      Add an AUTO_INCREMENT column to auto-generated tables.
  --auto-generate-sql-execute-number=# 自动生成的查询的个数
                      Set this number to generate a set number of queries to
                      run.
  --auto-generate-sql-guid-primary 增加基于GUID的主键
                      Add GUID based primary keys to auto-generated tables.
  --auto-generate-sql-load-type=name 测试语句的类型。取值包括:read,key,,write,update和mixed(默认)
                      read:查询 write:插入 key:读主键 update:更新主键 mixed:一半插入一半查询
                      Specify test load type: mixed, update, write, key, or
                      read; default is mixed.
  --auto-generate-sql-secondary-indexes=# 增加二级索引的个数,默认是0
                      Number of secondary indexes to add to auto-generated
                      tables.
  --auto-generate-sql-unique-query-number=# 不同查询的数量,默认值是10
                      Number of unique queries to generate for automatic tests.
  --auto-generate-sql-unique-write-number=# 不同插入的数量,默认是100
                      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=#          多少条DML后提交一次
                      Commit records every X number of statements.
  -C, --compress      如果服务器和客户端支持都压缩,则压缩信息传递
                      Use compression in server/client protocol.
  -c, --concurrency=name 模拟N个客户端并发执行select。可指定多个值,以逗号或者 --delimiter 参数指定的值做为分隔符
                      Number of clients to simulate for query to run.
  --create=name      指定用于创建表的.sql文件或者字串
                      File or string to use create tables.
  --create-schema=name 指定待测试的数据库名,MySQL中schema也就是database,默认是mysqlslap
                      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      Check memory and open file usage at exit.
  -T, --debug-info    打印内存和CPU的信息
                      Print some debug info at exit.
  --default-auth=name Default authentication client-side plugin to use.
  -F, --delimiter=name 文件中的SQL语句使用分割符号
                      Delimiter to use in SQL statements supplied in file or
                      command line.
  --detach=#          每执行完N个语句,先断开再重新打开连接
                      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 自动生成的测试表中包含多少个字符类型的列,默认1
                      Number of VARCHAR columns to create in table if
                      specifying --auto-generate-sql.
  -y, --number-int-cols=name 自动生成的测试表中包含多少个数字类型的列,默认1
                      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  测试完成以后执行的SQL语句的文件或者字符串 这个过程不影响时间计算
                      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    测试执行之前执行的SQL语句的文件或者字符串 这个过程不影响时间计算
                      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    指定自定义.sql脚本执行测试。例如可以调用自定义一个存储过程或者sql语句来执行测试
                      Query to run or file containing query to run.
  -s, --silent        不输出
                      Run program in silent mode - no output.
  -S, --socket=name  The socket file to use for connection.
  --ssl              Enable SSL for connection (automatically enabled with
                      other flags).
  --ssl-ca=name      CA file in PEM format (check OpenSSL docs, implies
                      --ssl).
  --ssl-capath=name  CA directory (check OpenSSL docs, implies --ssl).
  --ssl-cert=name    X509 cert in PEM format (implies --ssl).
  --ssl-cipher=name  SSL cipher to use (implies --ssl).
  --ssl-key=name      X509 key in PEM format (implies --ssl).
  --ssl-crl=name      Certificate revocation list (implies --ssl).
  --ssl-crlpath=name  Certificate revocation list path (implies --ssl).
  --ssl-verify-server-cert
                      Verify server's "Common Name" in its cert against
                      hostname used when connecting. This option is disabled by
                      default.
  -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.
[root@Betty libmysql]#

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn