mysqlslapMySQL5.1之后自带的benchmark基准测试工具,该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。

      使用方式:

      --concurrency  并发数量 (可逗号隔开),例如:concurrency=10,50,100 并发连接线程数是10,50,100

      --engines 要测试的存储引擎,逗号隔开

      --iterations   运行多少次后,得到结果;

      --auto-generate-sql  自动生成SQL脚本来测试;

      --auto-generate-sql-load-type  测试类型是read还是write,还是mixed;(可以使用--only-print 查看到底是哪些SQL语句)

      --number-of-queries 执行查询的次数,

      --debug-info  输出CPU、内存等系统相关信息

      --number-int-cols  测试表int字段类型的数量;

      --auto-generate-sql-add-autoincrement  对生成的测试表 自动生成含有auto_increment属性的列;

      --number-char-cols  测试表的char类型字段的数量;

      --create-schema = db  创建测试的数据库;

      --query 使用自定义脚本进行测试, 可以是一个存储过程或者SQL语句来执行;

      --only-print  只打印测试过程中涉及到的SQL语句,不真正的执行;

  举例:

  测试200个并发写入性能,测试20次,自动生成SQL脚本,测试表包含35个int字段,20个char字段,测试引擎分别为innodb,myisam;每次执行3000个query;

 

./bin/mysqlslap --socket=/usr/local/mysql/mysql.sock --port=3306 --concurrency=200  --iterations=20 --auto-generate-sql --auto-generate-sql-load-type=write  --auto-generate-sql-add-autoincrement --number-int-cols=35 --number-char-cols=20  --engine=innodb,myisam   --create-schema=sysbench  --number-of-queries=3000 --debug-info


        结果为:

       

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 6.385 seconds
        Minimum number of seconds to run all queries: 3.021 seconds
        Maximum number of seconds to run all queries: 12.969 seconds
        Number of clients running queries: 200
        Average number of queries per client: 15
Benchmark
        Running for engine myisam
        Average number of seconds to run all queries: 0.621 seconds
        Minimum number of seconds to run all queries: 0.442 seconds
        Maximum number of seconds to run all queries: 1.134 seconds
        Number of clients running queries: 200
        Average number of queries per client: 15
User time 0.66, System time 1.97
Maximum resident set size 10060, Integral resident set size 0
Non-physical pagefaults 50486, Physical pagefaults 5, Swaps 0
Blocks in 584 out 96, Messages in 0 out 0, Signals 0
Voluntary context switches 298373, Involuntary context switches 1469


自定义SQL测试脚本:

 

mysqlslap --create=/yourpath/test.sql --query=/yourpath/test1.sql --concurrency=50,100,200 --iterations=20 --engine=myisam,innodb