|
mysqlslap是MySQL5.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; [Shell] 纯文本查看 复制代码
./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 forengine 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 forengine 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 time0.66, System time1.97
Maximum resident setsize 10060, Integral resident setsize 0
Non-physical pagefaults 50486, Physical pagefaults 5, Swaps 0
Blocks in584 out 96, Messages in0 out 0, Signals 0
Voluntary context switches 298373, Involuntary context switches 1469
自定义SQL测试脚本:
1
mysqlslap --create=/yourpath/test.sql --query=/yourpath/test1.sql --concurrency=50,100,200 --iterations=20 --engine=myisam,innodb
|