暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL性能指标TPS与QPS介绍

运维特工 2018-06-29
996

MySQL性能指标TPS与QPS介绍

1.什么是TPS

TPS ( TransactionPerSecond
)每秒事务数,即数据库每秒执行的事务数。

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 = ( cr2 - cr1 ) / ( t2 - t1 ) 算出来的就是该MySQL实例在t1 与 t2生命周期之间的平均 TPS

2.什么是QPS

QPS( QueryPerSecond
)每秒请求次数,也就是数据库每秒执行的SQL数量。包含 insert
、 select
、 update
、 delete
等。

MySQL数据库本身已经提供了这个 QPS
指标值,可以使用如下命令获取:

  1. # mysqladmin -uroot -punixfbi -S /tmp/mysql3307.sock  status 2> /dev/null

得到的结果里面包含 Queriesper second

  1. 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
值呢?

  1. # mysqladmin -uroot -punixfbi -S /tmp/mysql3307.sock extended-status  2>/dev/null |grep "Questions"

或者

  1. # mysql -uroot -punixfbi -S /tmp/mysql3307.sock -e "show global status like 'Questions'" 2>/dev/null

3.什么是IOPS

IOPS( Input/OutputOperationsperSecond
)即每秒处理的I/O请求次数。是判断磁盘I/O能力的指标之一。

一般来讲 IOPS
指标越高,那么单位时间内能够响应的请求自然也就越多。理论上讲,只要系统实际的请求数低于IOPS的能力,就相当于每一个请求都能得到即时响应,那么I/O就不会是瓶颈了。

注意:IOPS与磁盘吞吐量不一样,吞吐量是指单位时间内可以成功传输的数据数量。

怎么查看磁盘的IOPS呢? 可以使用iostat命令

  1. # yum install sysstat

  2. # iostat  -dx 1 10

IOPS = r/s(每秒读了多少次) + w/s(每秒写了多少次)

本文出自 “运维特工” 博客,转载请务必保留原文链接 和 http://www.unixfbi.com


文章转载自运维特工,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论