[TOC]
* 单位时间内所处理的事务数 (TPS)
* 单位时间内所处理的查询数(QPS)
* 响应时间
平均响应时间,最小响应时间,最大响应时间,各时间所占百分比
* 并发量:同时处理的查询请求的数量(并发量不等于连接数)
正在工作的并发的操作或同时工作的数量
# 工具
## mysqlslap
mysql自带的
### 特点
* 可以模拟服务器负载,并输出相关统计信息
* 可以指定也可以自动生成查询语句
### 常用参数说明
~~~
--auto-generate-sql 由系统自动生成SQL脚本进行测试
--auto-generate-sql-add-autoincrement 在生成的表中增加自增ID
--auto-generate-sql-load-type指定测试中使用的查询类型,CURD混合的
--auto-generate-sql-write-number指定初始化数据生成的数据量是多少
--concurrency指定并发线程数量
--engine指定要测试表的存储引擎,可以用逗号分隔多个存储引擎
--no-drop指定不清理测试数据
--iterations指定测试运行的次数,指定这个就不能指定上面的no-drop是相互冲突的
--number-of-queries指定每个线程执行的查询数量
--debug-info指定输出额外的内存以及CPU统计信息
--number-int-cols指定测试表中包含的INT类型的数量
--number-char-cols指定测试表中包含的varchar类型的数量
--create_schema指定了用于测试的数据库的名字
--query 用于指定自定义SQL脚本
--only-print并不运行测试脚本,而是把生成的脚本打印出来
~~~
## sysbench
比mysqlslap好,更全面
贴近innodb的方面
github地址: https://github.com/akopytov/sysbench
常用参数
~~~
--test用于指定所要执行的测试类型,支持以下参数
Fileio文件系统I/O性能测试
cpu cpu性能测试
memory 内存性能测试
Oltp 测试要指定具体的lua脚本
Lua脚本位于 sysbench-{版本号}/sysbench/tests/db
~~~
~~~
--mysql-db用于指定执行基准测试的数据库名
--mysql-tabke-engine用于指定所使用的存储引擎
--oltp-tables-count执行测试的表的数量
--oltp-table-size指定每个表的数据行数
--num-threads指定测试的并发线程数量
--max-time指定最大的测试时间
--report-interval指定间隔多长时间输出一次统计信息
--mysql-user指定执行测试的mysql用户
--mysql-password指定执行测试的mysql用户的密码
prepare用于准备测试数据
run用于实际进行测试
cleanup用于清理测试数据
~~~
测试:
~~~
sysbench --test=cpu --cpu-max-prime=10000 run
对cpu测试最大数10000
~~~