Showing posts with label mysqlslap utility. Show all posts
Showing posts with label mysqlslap utility. Show all posts

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: