用mysqlslap进行mysql压力测试

上一篇 / 下一篇  2013-03-21 14:06:38 / 个人分类:其他

转载地址:http://my.oschina.net/javagg/blog/5060 

mysqlslap是一个mysql官方提供的压力测试工具,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项。 
下面我们就来看看一些比较重要的参数: 
Java代码  收藏代码
  1. –defaults-file,配置文件存放位置  
  2. –create-schema,测试的schema,MySQL中schema也就是database  
  3. –concurrency,并发数  
  4. –engines,测试引擎,可以有多个,用分隔符隔开。  
  5. –iterations,迭代的实验次数  
  6. –socket,socket,文件位置  
  7. –debug-info,打印内存和CPU的信息  
  8. –only-print,只打印测试语句而不实际执行  
  9. –auto-generate-sql,自动产生测试SQL  
  10. –auto-generate-sql-load-type,测试SQL的类型。类型有mixed,update,write,key,read。  
  11. –number-of-queries,执行的SQL总数量  
  12. –number-int-cols,表内int列的数量  
  13. –number-char-cols,表内char列的数量  
  14. –query=name,使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。  

测试例子如下: 
Java代码  收藏代码
  1. [root@localhost ~]# /usr/local/mysql/bin/mysqlslap  –defaults-file=/etc/my.cnf –concurrency=200 –iterations=1 –number-int-cols=1 –auto-generate-sql –auto-generate-sql-load-type=write –engine=myisam,innodb –number-of-queries=200 -S/tmp/mysql.sock –debug-info  -uroot -p123  
  2. Benchmark  
  3.         Running for engine myisam  
  4.         Average number of seconds to run all queries: 0.087 seconds  
  5.         Minimum number of seconds to run all queries: 0.087 seconds  
  6.         Maximum number of seconds to run all queries: 0.087 seconds  
  7.         Number of clients running queries: 200  
  8.         Average number of queries per client: 1  
  9. Benchmark  
  10.         Running for engine innodb  
  11.         Average number of seconds to run all queries: 0.551 seconds  
  12.         Minimum number of seconds to run all queries: 0.551 seconds  
  13.         Maximum number of seconds to run all queries: 0.551 seconds  
  14.         Number of clients running queries: 200  
  15.         Average number of queries per client: 1  
  16. User time 0.03, System time 0.05  
  17. Maximum resident set size 0, Integral resident set size 0  
  18. Non-physical pagefaults 2826, Physical pagefaults 0, Swaps 0  
  19. Blocks in 0 out 0, Messages in 0 out 0, Signals 0  
  20. Voluntary context switches 3340, Involuntary context switches 96  

对于INNODB引擎,200个客户端同时运行这些SQL语句平均要花0.551秒。相应的MYISAM为0.087秒,测试结果也很简明,就不多少说了。 
指定数据库的测试: 
Java代码  收藏代码
  1. –create-schema,指定数据库名称  
  2. –query,     指定SQL语句,可以定位到某个包含SQL的文件  
  3. [root@localhost ~]# /usr/local/mysql/bin/mysqlslap –defaults-file=/etc/my.cnf –concurrency=50 –iterations=1 –create-schema=test –query=/root/test.sql -S/tmp/mysql.sock -uroot -p123  
  4. Benchmark  
  5.         Average number of seconds to run all queries: 0.021 seconds  
  6.         Minimum number of seconds to run all queries: 0.021 seconds  
  7.         Maximum number of seconds to run all queries: 0.021 seconds  
  8.         Number of clients running queries: 50  
  9.         Average number of queries per client: 1  

TAG:

 

评分:0

我来说两句

Open Toolbar