Several performance testing tools for MySQL

Source: Internet
Author: User
Tags benchmark postgresql

MySQL several performance testing tools to use

First, Mysqlslap

Installation: With MySQL on it.

Function: Simulates concurrent test Database performance.

Advantages: Simple, easy to use.

Insufficient: Can not specify the size of the generated data, the test process is not clear for the 100,000-level or millions data to do the test, it is not very suitable for comprehensive testing, more suitable for the existing database, the optimization of a single SQL test.

How to use:

You can use Mysqlslap--help to show how to use:

Default options is read from the following files in the given order:

/ETC/MYSQL/MY.CNF/ETC/MY.CNF ~/.my.cnf

--engines: Represents the engine to be tested, can have multiple, separated by delimiters.

--iterations: Represents how many times to run these tests.

--auto-generate-sql: Represents the SQL script generated by the system itself.

--auto-generate-sql-load-type: Represents whether to test for reading or writing or for mixing (read,write,update,mixed)

--number-of-queries: Represents the total number of queries to run. The number of queries that each client runs can be calculated using the total number of queries/concurrency.

The--debug-info represents the additional output of CPU and memory related information.

--number-int-cols: Number of int fields to create test table

--auto-generate-sql-add-autoincrement: Represents the automatic addition of auto_increment columns to the generated table, starting with version 5.1.18

--number-char-cols the number of char fields that created the test table.

The schema of the--create-schema test Schema,mysql is database.

--query uses a custom script to perform tests, such as a custom stored procedure or SQL statement that can be invoked to perform the test.

--only-print If you just want to print and see what the SQL statement is, you can use this option.

Mysqlslap-u root-p--concurrency=100--iterations=1--auto-generate-sql--auto-generate-sql-add-autoincrement-- Auto-generate-sql-load-type=mixed--engine=myisam--number-of-queries=10

Or:

Specify the database and SQL statements:

Mysqlslap-h localhost-p 123456--concurrency=100--iterations=1--create-schema= ' mysql '--query= ' select * from user; '-- Number-of-queries=10-u root-p

If you look at what you've done, add:--only-print

Benchmark

Average number of seconds to run all queries:25.225 seconds

Minimum number of seconds to run all queries:25.225 seconds

Maximum number of seconds to run all queries:25.225 seconds

Number of clients running queries:100

Average number of queries per client:0

The above indicates that 100 clients run at the same time for 25 seconds

Again such as:

mysqlslap-uroot-p123456--concurrency=100--iterations=1--engine=myisam--create-schema= ' haodingdan112 '--query= ' SELECT * from order_boxing_transit where id = Ten '--number-of-queries=1--debug-info

Second, Sysbench

Installation:

Can be downloaded from http://sourceforge.net/projects/sysbench/

Tar zxf sysbench-0.4.12.tar.gz

CD sysbench-0.4.12

./autogen.sh

./configure && make && make install

Strip/usr/local/bin/sysbench

Installation time may be error, and later Baidu found a good article http://blog.csdn.net/icelemon1314/article/details/7004955 afraid later find, also paste over it

1. If MySQL is not the default path installation, you will need to load the MySQL installation path by specifying the--with-mysql-includes and--with-mysql-libs parameters

2. If you have an error:

.. /libtool:line 838:x--tag=cc:command not found

.. /libtool:line 871:libtool:ignoring unknown Tag:command not found

.. /libtool:line 838:x--mode=link:command not found

.. /libtool:line 1004: * * * warning:inferring the mode of operation is deprecated.: Command not Found

.. /libtool:line 1005: * * * Future versions of Libtool would require--mode=mode be specified.: Command not Found

.. /libtool:line 2231:x-g:command not found

.. /libtool:line 2231:x-o2:command not found

Then execute the following root directory: autogen.sh file, then re-configure && make && make install

3. If you have an error:

Sysbench:error while loading shared libraries:libmysqlclient.so.18:cannot open Shared object file:no such file or dire Ctory

Then perform the following:

N-/usr/local/mysql5.5/mysql/lib/libmysqlclient.so.18/usr/lib64/

4. If autogen.sh is executed, the following error is reported:

./autogen.sh:line 3:aclocal:command Not found

Then you need to install a software:

Yum Install Automake

Then you need to add a parameter: find: Ac_prog_libtool to annotate it, then add Ac_prog_ranlib

function: Simulate concurrency, can perform cpu/memory/thread/io/database and other aspects of performance testing. Database currently supports Mysql/oracle/postgresql

Pros: You can specify the size of your test data, you can test read and write performance individually, or you can test the performance of read-write mixes.

Insufficient: test, due to network reasons, the test is very slow, but the final result is very good, concurrent support is very high, so I feel is not too accurate. Of course, maybe I didn't understand the principle.

How to use:

Preparing data

Sysbench--test=oltp--mysql-table-engine=myisam--oltp-table-size=400000--mysql-db=dbtest2--mysql-user=root-- MYSQL-HOST=192.168.1.101--mysql-password=pwd Prepare

Perform tests

Sysbench--num-threads=100--max-requests=4000--TEST=OLTP--mysql-table-engine=innodb--oltp-table-size=400000-- Mysql-db=dbtest1--mysql-user=root--mysql-host=192.168.1.101--mysql-password=pwd Run

Sysbench 0.4.12:multi-threaded System Evaluation Benchmark

No DB drivers specified, using MySQL

Running the test with following options:

Number of threads:100

Doing OLTP test.

Running Mixed OLTP Test

Using Special Distribution (iterations, 1 pct of values is returned in the PCT cases)

Using "BEGIN" for starting transactions

Using auto_inc on the ID column

Maximum number of requests for OLTP test are limited to 4000

Threads started!

Done.

OLTP Test Statistics:

Queries performed:

read:56014

write:20005

other:8002

total:84021

transactions:4001 (259.14 per sec.)

Deadlocks:0 (0.00 per Sec.)

Read/write requests:76019 (4923.75 per sec.)

Other operations:8002 (518.29 per sec.)

Test Execution Summary:

Total time:15.4393s

Total number of events:4001

Total time taken by event execution:1504.7744

Per-request Statistics:

Min:33.45ms

Avg:376.10ms

Max:861.53ms

Approx. percentile:505.65ms

Threads Fairness:

Events (Avg/stddev): 40.0100/0.67

Execution Time (Avg/stddev): 15.0477/0.22

Third, Tpcc-mysql

Installation:

Export C_include_path=/usr/include/mysql

Export Path=/usr/bin: $PATH

Export Ld_library_path=/usr/lib/mysql

Cd/tmp/tpcc/src

Make

The TPCC command-line tool Tpcc_load, Tpcc_start, is then generated under/tmp/tpcc-mysql.

Role: Test the overall performance of MySQL database

Advantages: Conforms to the TPCC standard, has the standard method, simulates the real trading activity, the result is more reliable.

Insufficient: Can not test the performance of reading or writing alone, for some query-based or write-only applications, there is no such a big significance.

How to use:

Loading data

Create a library

Mysql>create database tpcc10;

To create a table:

Shell>mysql TPCC10 < Create_table.sql

To add a foreign key:

Shell>mysql TPCC10 < Add_fkey_idx.sql

Load data:

1. Single Process load:

Shell>./tpcc_load 192.168.11.172 TPCC10 root pwd 300

| host | | Database | | user | | password | | warehouse|

2, concurrent loading: (recommended, but need to modify)

shell>./load.sh tpcc300 300

| database | | warehouse|

3. Testing

./tpcc_start-h192.168.11.172-d tpcc-u root-p ' pwd '-w 10-c 10-r 10-l 60-i 10-f/mnt/hgfs/mysql/tpcc100_2013522.tx T

***************************************

# # #easy # # TPC-C Load Generator * * *

***************************************

Option h with value ' 192.168.11.172 '

Option d with value ' TPCC '

Option U with value ' root '

Option p with value ' pwd '

Option W with value ' 1 '

Option C with value ' 100 '

Option r with value ' 120 '

Option L with value ' 60 '

Option I with value ' 10 '

Option F with value '/mnt/hgfs/mysql/tpcc100_2013522.txt '

<Parameters>

[Server]: 192.168.11.172

[Port]: 3306

[DBname]: TPCC

[User]: Root

[Pass]: pwd

[Warehouse]: 1

[Connection]: 100

[Rampup]: (sec.)

[Measure]: (sec.)

Ramp-up time. (sec.)

Measuring START.

10, 245 (77): 10.923|28.902, 242 (0): 3.677|10.796, 25 (0): 1.579|2.198, 24 (0): 17.451|21.047, 25 (4): 19.999|33.776

20, 262 (75): 9.070|11.917, 263 (0): 3.407|4.716, 26 (0): 1.608|1.776, 27 (0): 11.347|16.408, 26 (1): 19.166|21.018

30, 247 (90): 11.130|14.131, 241 (0): 2.367|2.654, 24 (0): 0.960|1.095, 24 (0): 9.308|16.538, 25 (3): 19.999|24.874

40, 237 (69): 11.840|13.009, 239 (1): 3.638|7.245, 24 (0): 0.692|0.773, 23 (0): 8.756|10.456, 23 (1): 19.527|20.495

50, 252 (69): 10.548|17.925, 256 (0): 2.652|2.893, 26 (0): 1.177|3.579, 27 (0): 14.648|15.018, 25 (4): 19.999|26.398

60, 256 (78): 9.323|11.328, 251 (1): 3.895|5.380, 25 (0): 0.785|1.542, 25 (0): 11.382|15.829, 26 (0): 18.481|18.855

Stopping THREADS ....................................................................................................

<raw results>

[0] sc:1041 lt:458 rt:0 fl:0

[1] sc:1490 lt:2 rt:0 fl:0

[2] sc:150 lt:0 rt:0 fl:0

[3] sc:150 lt:0 rt:0 fl:0

[4] sc:137 lt:13 rt:0 fl:0

In the SEC.

<raw Results2 (Sum ver.) >

[0] sc:1041 lt:458 rt:0 fl:0

[1] sc:1490 lt:2 rt:0 fl:0

[2] sc:150 lt:0 rt:0 fl:0

[3] sc:150 lt:0 rt:0 fl:0

[4] sc:137 lt:13 rt:0 fl:0

<constraint check> (all must be [OK])

[Transaction percentage]

payment:43.36% (>=43.0%) [OK]

order-status:4.36% (>= 4%) [OK]

delivery:4.36% (>= 4%) [OK]

stock-level:4.36% (>= 4%) [OK]

[Response time (at least 90% passed)]

new-order:69.45% [NG] *

payment:99.87% [OK]

order-status:100.00% [OK]

delivery:100.00% [OK]

stock-level:91.33% [OK]

<TpmC>

1499.000 TPMC

For the concept of TPCC, see http://baike.baidu.com/view/2776305.htm

Here is the test case introduction paste

The model used in the TPC-C test is a large wholesale sales company with several commodity warehouses distributed in different regions. When the business expands, the company will add a new warehouse.

Each warehouse is responsible for the delivery of 10 points of sale, each of which serves 3,000 customers, with an average of 10 products per order per customer

About 1% of all orders are not stocked in the warehouses they directly belong to, and must be supplied from warehouses in other regions. At the same time, each warehouse to maintain the company's sales of 100000 kinds of goods inventory records.

Iv. the MySQL Benchmark Suite

This test tool is distributed with MySQL bindings, based on the Perl language and two modules: DBI and benchmark. If necessary, it supports all DBI-driven databases. You can modify the bench-init.pl options to suit your needs. It is also a reminder that it does not support multiple CPUs.

When testing, execute the run-all-tests script, the specific command options see the README.

V. MySQL Super-smack

This is a powerful and widely acclaimed stress testing tool that supports MySQL and PostgreSQL.

http://jeremy.zawodny.com/mysql/super-smack/

The installation is simple, please read the guide document in the catalogue carefully first.

Preparing test Data

When doing tests, it's best to use your own data. Because the actual data is used, the test becomes nearly realistic and objective.

Configuration

Smack file settings, it looks very simple.

Liu, mybench:a home-grown solution

Mybench is an easy-to-extend test tool based on the Perl language.


Several performance testing tools for MySQL

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.