Home  >  Article  >  Database  >  Details of the code for mysqlslap to execute benchmark tests

Details of the code for mysqlslap to execute benchmark tests

黄舟
黄舟Original
2017-03-04 14:43:541234browse

View the main parameter configuration and description supported by mysqlslap as follows


<span style="color: #000000">-a, --auto-generate-sql 由系统自动生成SQL脚本进行测试<br/>                      Generate SQL where not supplied by file or command line.<br/>  --auto-generate-sql-add-autoincrement 生成的表中增加自增的ID<br/>                      Add an AUTO_INCREMENT column to auto-generated tables.--auto-generate-sql-load-type=name 制定测试过程中使用的查询类型<br/>                      Specify test load type: mixed, update, write, key, or<br/>                      read; default is mixed.--auto-generate-sql-write-number=# 制定所生成的初始化数据的条数<br/>                      Number of row inserts to perform for each thread (default<br/>                      is 100).-c, --concurrency=name 制定并发线程的数量<br/>                      Number of clients to simulate for query to run.<br/>  --create=name       File or string to use create tables.<br/>  --create-schema=name 创建一个测试数据库的schema名称<br/>                      Schema to run tests in.-T, --debug-info    This is a non-debug version. Catch this and exit.指定输出额外的内存及CPU统计信息-e,<br/>                       --engine=name   Storage engine to use for creating the table. 指定所测试的存储引擎,用逗号可以分割以便测试多个引擎<br/>  -h, --host=name     Connect to host. 链接远程主机的IP<br/>  -i, --iterations=#  Number of times to run the tests. 指定本次测试需要运行的次数<br/>  --no-drop           Do not drop the schema after the test. 指定测试完成后,不清理过程数据<br/>  -x, --number-char-cols=name 指定测试表中生成的varchar类型的数据数量<br/>                      Number of VARCHAR columns to create in table if<br/>                      specifying --auto-generate-sql.<br/>  -y, --number-int-cols=name 指定测试表中生成的int类型的数据数量<br/>                      Number of INT columns to create in table if specifying<br/>                      --auto-generate-sql.<br/>  --number-of-queries=# 指定每一个线程所执行的查询数量<br/>                      Limit each client to this number of queries (this is not<br/>                      exact).<br/>  --only-print        Do not connect to the databases, but instead print out 并不运行测试脚本,而是把生成的脚本打印出来<br/>                      what would have been done.<br/>  -p, --password[=name] 指定测试所用的链接数据库的密码<br/>                      Password to use when connecting to server. If password is<br/>                      not given it&#39;s asked from the tty.-q, --query=name    Query to run or file containing query to run.自定义测试用的sql<br/>  -u, --user=name     User for login if not current user. 指定测试所用的链接数据库的用户名<br/></span>


The complete running script is as follows

mysqlslap -S /tmp/mysql3306.sock --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 
--auto-generate-sql --auto-generate-sql-add-autoincrement --engine=innodb --number-of-queries=10
 --create-schema=test -uroot -p

After entering the password, the test information is as follows

Enter password: 
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.097 seconds
        Minimum number of seconds to run all queries: 0.093 seconds
        Maximum number of seconds to run all queries: 0.107 seconds
        Number of clients running queries: 1
        Average number of queries per client: 10Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.506 seconds
        Minimum number of seconds to run all queries: 0.447 seconds
        Maximum number of seconds to run all queries: 0.570 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 2.204 seconds
        Minimum number of seconds to run all queries: 1.595 seconds
        Maximum number of seconds to run all queries: 3.257 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections
mysqlslap: Error when connecting to server: 1040 Too many connections

It can be seen at this time that when the concurrency reaches 200, a Too many connections exception occurs. This is because the maximum number of connections configured by mysql is default. is 100, so you need to make the following modifications to my.cnf

Add max_connections=1024, and then run normally

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.093 seconds
        Minimum number of seconds to run all queries: 0.087 seconds
        Maximum number of seconds to run all queries: 0.098 seconds
        Number of clients running queries: 1
        Average number of queries per client: 10Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 0.514 seconds
        Minimum number of seconds to run all queries: 0.462 seconds
        Maximum number of seconds to run all queries: 0.545 seconds
        Number of clients running queries: 50
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 1.209 seconds
        Minimum number of seconds to run all queries: 1.173 seconds
        Maximum number of seconds to run all queries: 1.241 seconds
        Number of clients running queries: 100
        Average number of queries per client: 0Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 2.174 seconds
        Minimum number of seconds to run all queries: 1.978 seconds
        Maximum number of seconds to run all queries: 2.402 seconds
        Number of clients running queries: 200
        Average number of queries per client: 0

The above is the detailed introduction of the code for mysqlslap to execute the benchmark test, more related Please pay attention to the PHP Chinese website (www.php.cn) for content!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn