mysqlslap

MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap -help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册

man mysqlslap 也可以看到有下面一条示例:

  1. mysqlslap --delimiter=";" --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" --query="SELECT * FROM a" --concurrency=50 --iterations=200 

mysqlslap --help 参数

  1. -a, --auto-generate-sql  自动生成测试表和数据 
  2. --auto-generate-sql-load-type=name  测试语句的类型。取值包括:read,key,write,update和mixed(多种混合,默认)。 
  3. -C, --compress  如果服务器和客户端支持都压缩,则压缩信息传递 
  4. --commit=N  多少条DML后提交一次 
  5. --create-schema=name 指定数据库测试,不要和:auto-generate-sql 参数一起使用!
  6. --detach=N  执行N条语句后断开重连 
  7. --concurrency  指定并发数 
  8. -T, --debug-info  打印内存和CPU的信息 
  9. --number-of-queries=1000  指定查询总次数 
  10. -i, --iterations=5  重复多次(迭代多次) 
  11. -e, --engine=name  指定引擎  
  12. --only-print  只输出测试语句而不实际执行 
  13. -q, --query=name  使用自定义脚本执行测试,例如可以调用自定义的一个存储过程或者sql语句来执行测试。 

压力测试: 分别50、100和500个并发,执行1000次总查询,指定引擎:myisam,innodb

  1. [root@localhost ~]# mysqlslap --auto-generate-sql --concurrency=50,100,500 --number-of-queries=1000 --iterations=5 --debug-info --engine=myisam,innodb -uroot -p
  2. Enter password:
  3. Benchmark 
  4.     Running for engine myisam 
  5.     Average number of seconds to run all queries: 0.108 seconds 
  6.     Minimum number of seconds to run all queries: 0.083 seconds 
  7.     Maximum number of seconds to run all queries: 0.119 seconds 
  8.     Number of clients running queries: 50 
  9.     Average number of queries per client: 20 
  10.  
  11. Benchmark 
  12.     Running for engine myisam 
  13.     Average number of seconds to run all queries: 0.127 seconds 
  14.     Minimum number of seconds to run all queries: 0.094 seconds 
  15.     Maximum number of seconds to run all queries: 0.150 seconds 
  16.     Number of clients running queries: 100 
  17.     Average number of queries per client: 10 
  18.  
  19. Benchmark 
  20.     Running for engine myisam 
  21.     Average number of seconds to run all queries: 0.182 seconds 
  22.     Minimum number of seconds to run all queries: 0.161 seconds 
  23.     Maximum number of seconds to run all queries: 0.204 seconds 
  24.     Number of clients running queries: 500 
  25.     Average number of queries per client: 2 
  26.  
  27. Benchmark 
  28.     Running for engine innodb 
  29.     Average number of seconds to run all queries: 0.305 seconds 
  30.     Minimum number of seconds to run all queries: 0.294 seconds 
  31.     Maximum number of seconds to run all queries: 0.322 seconds 
  32.     Number of clients running queries: 50 
  33.     Average number of queries per client: 20 
  34.  
  35. Benchmark 
  36.     Running for engine innodb 
  37.     Average number of seconds to run all queries: 0.315 seconds 
  38.     Minimum number of seconds to run all queries: 0.304 seconds 
  39.     Maximum number of seconds to run all queries: 0.338 seconds 
  40.     Number of clients running queries: 100 
  41.     Average number of queries per client: 10 
  42.  
  43. Benchmark 
  44.     Running for engine innodb 
  45.     Average number of seconds to run all queries: 0.515 seconds 
  46.     Minimum number of seconds to run all queries: 0.485 seconds 
  47.     Maximum number of seconds to run all queries: 0.548 seconds 
  48.     Number of clients running queries: 500 
  49.     Average number of queries per client: 2 
  50.  
  51.  
  52. User time 2.48, System time 2.47 
  53. Maximum resident set size 27284, Integral resident set size 0 
  54. Non-physical pagefaults 55681, Physical pagefaults 0, Swaps 0 
  55. Blocks in 0 out 0, Messages in 0 out 0, Signals 0 
  56. Voluntary context switches 101688, Involuntary context switches 95927 
posted @ 2012-09-11 15:17  Jake.Xu  阅读(216)  评论(0编辑  收藏  举报