July 22, 2019

MySQL mysqlslap load test utility

Stress Test Utility mysqlslap in MySQL/MariaDB/Aurora

mysqlslap - Slaps MySQL tables with a load of queries at a rate and concurrency that you set. Run a query multiple times against the server.

MySQL utility designed to simulate load test or stress test for a MySQL server and to report the timing of each stage.

Usage: mysqlslap [OPTIONS]

mysqlslap --help
mysqlslap --version

mysqlslap --concurrency=150 --iterations=50 --query=/tmp/test.sql --create-schema=world
mysqlslap --concurrency=50 --iterations=5 --query=/Users/me/Desktop/test1.sql --create-schema=my_database  -umy_username -pmy_password
mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200
mysqlslap --concurrency=5 --iterations=20 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql
mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";"

mysqlslap --concurrency=1150 --iterations=530 --query="use test;insert into foobar_table (id) values (null)" --delimiter=";" 
mysqlslap --concurrency=150 --iterations=30 --query=/tmp/test1.sql --create-schema=test --verbose 
mysqlslap --concurrency=200 --iterations=1000 --query=" insert into foobar_table (id) values (null)" --verbose --create-schema=test

sudo mysqlslap --user=sysadmin --password --host=localhost  --auto-generate-sql --verbose
sudo mysqlslap --user=root --password --host=localhost  --concurrency=50 --iterations=10 --auto-generate-sql --verbose
sudo mysqlslap --user=root --password --host=localhost  --concurrency=50 --iterations=100 --number-int-cols=5 --number-char-cols=20 --auto-generate-sql --verbose
sudo mysqlslap --user=root --password --host=localhost  --concurrency=50 --iterations=10 --create-schema=employees --query="SELECT * FROM 24ur;" --verbose

mysqlslap --user=sysadmin --password --host=localhost  --concurrency=20 --iterations=10 --create-schema=employees --query="SELECT * FROM employees;SELECT * FROM dept_emp;" --delimiter=";" --verbose

mysqlslap --user=sysadmin --password --host=localhost  --concurrency=20 --number-of-queries=1000 --create-schema=employees --query="/mysqlslap_tutorial/select_query.sql" --delimiter=";" --verbose --iterations=2 --debug-info

mysqlslap --user=sysadmin --password --host=localhost  --concurrency=10 --iterations=2 --create-schema=employees_backup --query="/mysqlslap_tutorial/capture_queries.sql" --verbose

mysqlslap -u root -p -h 192.168.3.206 –port=3306 –concurrency=50 –iterations=10 –number-int-cols=5 –number-char-cols=5 –auto-generate-sql –auto-generate-sql-add-autoincrement –auto-generate-sql-execute-number=100 –engine=ndbcluster –create-schema=’ndbtest’ -vv

mysqlslap --user=sysadmin --password --host=localhost  --agreement=20 --number-of-queries=1000 --create-schema=employees --query="/mysqlslap_tutorial/select_query.sql" --delimiter=";" --verbose --iterations=2 --debug-info

mysqlslap —user=john —auto-generate-sql —concurrency=100 —number-of-queries=1000 —number-char-cols=4 —number-int-cols=7
mysqlslap —user=john —auto-generate-sql —concurrency=100 —number-of-queries=700 —engine=innodb
mysqlslap —csv=/tmp/output.csv —user=john —auto-generate-sql —concurrency=100 —number-of-queries=1000 —number-char-cols=4 —number-int-cols=7



Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/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   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  Add GUID based primary keys to auto-generated tables.
  --auto-generate-sql-load-type=name Specify test load type: 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.
  --compression-algorithms Permitted compression algorithms for connections to server
  -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       Check memory and open file usage at exit.
  -T, --debug-info    Print some debug info at 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 its 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. (Defaults to on; use --skip-secure-auth to disable.)
  -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.
  --ssl-mode=name     SSL connection mode.

  --tls-ciphersuites Permissible   TLSv1.3 ciphersuites for encrypted connections
  --tls-version Permissible TLS protocols for encrypted connections
  -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.
  --zstd-compression-level Compression level for connections to server that use zstd compression


Related MySQL Articles: 

No comments:

Post a Comment