转载自:http://www.unixfbi.com/526.html
1.什么是 TPS
TPS (Transaction Per Second)每秒事务数,即数据库每秒执行的事务数。 MySQL 本身没有直接提供 TPS 参数值。如果我们想要获得 TPS 的值,只有我们自己计算了。可以根据 MySQL 数据库提供的状态变量,来计算TPS。 需要使用的参数: Com_commit :表示提交次数 Com_rollback:表示回滚次数 我们定义第一次获取的Com_commit的值与Com_rollback值的和为c_r1,时间为 t1; 第二次获取的Com_commit的值与Com_rollback值的和为c_r2,时间为 t2; t1 与 t2 单位为秒。 那么 TPS = ( c_r2 - c_r1 ) / ( t2 - t1 ) 算出来的就是该 MySQL 实例在 t1 与 t2 生命周期之间的平均TPS。
2.什么是 QPS
QPS(Query Per Second)每秒请求次数,也就是数据库每秒执行的 SQL 数量。包含insert、select、update、delete等。 MySQL 数据库本身已经提供了这个QPS指标值,可以使用如下命令获取: # mysqladmin -uroot -pllill2018 -S /tmp/mysql3307.sock status 2> /dev/null 得到的结果里面包含Queries per second: Uptime: 1203729 Threads: 1 Questions: 3496 Slow queries: 0 Opens: 1146 Flush tables: 4 Open tables: 9 Queries per second avg: 0.002 这样 QPS = Questions / Uptime 即可得到的该指标的值。MySQL 提供的这个QPS指标,是该 MySQL 实例从启动到目前,这段生命周期内的指标。 我们自己计算QPS时,获取两次QPS的值相减,然后除以两次的时间间隔。 我们定义第一次获取的Questions值为 Q1 ,时间点为 t1; 第二次获取Questions值为 Q2,时间点为 t2; t1 与 t2 单位为秒。 那么,QPS = ( Q2 - Q1 ) / ( t2 - t1 ) 怎么获取 MySQL 的Questions值呢? # mysqladmin -uroot -pllill2018 -S /tmp/mysql3307.sock extended-status 2>/dev/null |grep "Questions" 或者 # mysql -uroot -pllill2018 -S /tmp/mysql3307.sock -e "show global status like 'Questions'" 2>/dev/null
3.什么是 IOPS
IOPS(Input/Output Operations per Second)即每秒处理的 I/O 请求次数。是判断磁盘 I/O 能力的指标之一。一般来讲IOPS指标越高,那么单位时间内能够响应的请求自然也就越多。理论上讲,只要系统实际的请求数低于 IOPS 的能力,就相当于每一个请求都能得到即时响应,那么 I/O 就不会是瓶颈了。 注意:IOPS 与磁盘吞吐量不一样,吞吐量是指单位时间内可以成功传输的数据数量。 怎么查看磁盘的 IOPS 呢? 可以使用 iostat 命令 # yum install sysstat # iostat -dx 1 10 IOPS = r/s(每秒读了多少次) + w/s(每秒写了多少次)