A4-01-01. MySQL性能指标TPS、QPS和IOPS介绍


转载自: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、selectupdate、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(每秒写了多少次)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM