mysqlslap一些常用参数:
--number-of-queries:指定测试要查询的语句次数
-c,-concurrency:指定测试请求的并行度
-i,--iterations:指定测试运行的次数
--create-schema:指定测试在哪个schema下运行
-a,--auto-generater-sql:自动生成测试所需的sql语句
-x,--number-char-cols:指定自动生产的表对象中的varchar类型的数量,默认只有一个
-y,--number-int-cols:指定自动生成的表中int类型的数量,默认只有一个
--auto-generate-sql-add-autoeincrement:自动生成的表中在表中添加auto_increment列
--auto-generate-sql-execute-number:指定此次测试要执行的查询次数
--auto-generate-sql-guid-primary:自动生成基于guid为主键的表,本参数与--auto-generate-sql-add-autoeincrement互斥
--auto-generate-sql-load-type:指定测试的类型,有如下集中
read:读操作
write:写操作
key:通过主键读
update:更新操作
mixed:既有读也有写,此为默认值
--auto-generate-sqlsecondary-indexes:指定自动生成的表中的辅助索引
--auto-generate-sql-unique-query-number:指定生成的查询语句的个数,默认值为10
--auto-generate-sql-unique-write-number:指定生成的插入语句个数,默认为10
--auto-generate-sql-write-number:指定每个线程执行时插入的记录数,默认是100个
--commit:每多少条语句提交一次
-T, --debug-info:打印一些debug信息在最后
下面语句的意思是模拟50个客户端的并发,每个客户端查询200个语句,反复运行10次
[root@mysql1 extra]# mysqlslap -a -x 5 -y 3 --auto-generate-sql-add-autoincrement -c 50 -i 10 --number-of-queries=200 --engine=myisam,innodb --debug-info -uroot -p
下面语句的意思是模拟30个客户端的并发,测试查询的次数为1000,生成10个sql语句,意味着每个sql语句执行100次,没执行一次都提交
[root@mysql1 extra]# mysqlslap -a -x 10 -y 3 --auto-generate-sql-add-autoincrement --auto-generate-sql-execute-number=1000 --auto-generate-sql-unique-query-number=10 -c 30 --commit=1 --create-schema=brent --debug-info -uroot -p
例如比对不同的commit的,发现批量的commit速度提供了很多,结果如下:
[root@mysql1 extra]# mysqlslap -a -x 10 -y 3 --auto-generate-sql-add-autoincrement --auto-generate-sql-execute-number=1000 --auto-generate-sql-unique-query-number=10 -c 30 --commit=1 --create-schema=brent --debug-info -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 9.494 seconds
Minimum number of seconds to run all queries: 9.494 seconds
Maximum number of seconds to run all queries: 9.494 seconds
Number of clients running queries: 30
Average number of queries per client: 1000
User time 0.18, System time 0.31
Maximum resident set size 2908, Integral resident set size 0
Non-physical pagefaults 855, Physical pagefaults 0, Swaps 0
Blocks in 8 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 119879, Involuntary context switches 119
[root@mysql1 extra]# mysqlslap -a -x 10 -y 3 --auto-generate-sql-add-autoincrement --auto-generate-sql-execute-number=1000 --auto-generate-sql-unique-query-number=10 -c 30 --commit=100 --create-schema=brent --debug-info -uroot -p
Enter password:
Benchmark
Average number of seconds to run all queries: 4.711 seconds
Minimum number of seconds to run all queries: 4.711 seconds
Maximum number of seconds to run all queries: 4.711 seconds
Number of clients running queries: 30
Average number of queries per client: 1000
User time 0.14, System time 0.18
Maximum resident set size 2988, Integral resident set size 0
Non-physical pagefaults 857, Physical pagefaults 10, Swaps 0
Blocks in 1552 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 59737, Involuntary context switches 396