当前位置:Gxlcms > 数据库问题 > MySql主要性能指标说明

MySql主要性能指标说明

时间:2021-07-01 10:21:17 帮助过:19人阅读

Questions也就是查询请求的次数,但要注意的是这个值是一个全局的累计值,也就是自MySql服务启动后所有查询次数。如果我们计算的是数据库服务QPS性能的一个均值,可以直接采用下面的计算方式:

questions = show global status like "questions"; -- MySql启动后查询请求的总数量

uptimes = show global status like "uptime"; -- MySql本次启动后的运行时间(单位:秒)

QPS = questions/uptimes

如果你要计算的是系统峰值时QPS指标,这就需要我们手动去计算了,我们可以相隔单位时间通过show global status like "Questions"命令查询下这个值,并将相邻的两值相减除以相隔的时间,得到的就是精确的每一秒的实际请求数了。

TPS(Transcantion Per Second,既每秒事务数)

既然是每秒事务数据,在InnoDB引擎下才会有这个指标数据,TPS涉及到事务的提交与回滚,所以计算TPS时需要把show global status like "Com_commit" 与 show global status like "Com_rollback",计算方法同样需要我们每间隔一段时间进行一次采样,然后把Com_commit与Com_rollback值相加除以单位时间就是TPS值了,公式如下:

commit = show global status like "Com_commit";

rollback =  show global status like "Com_rollback";

TPS= (commit+rollback)/seconds(单位时间,单位:秒)

 4、InnoDB缓存读命中率、使用率、脏块率(%)

在MySql的使用中,由于InnoDB引擎的优点与特性,我们一般都会选择其做为MySql的数据引擎,InnoDB拥有的缓存特性可以很大程度的提高MySql的查询性能,因为Innodb 不仅仅缓存索引,同时还会缓存实 际的数据,通过配置我们可以在Innodb 存储引擎中使用更多的内存来缓存数据,那么在这个过程中其缓存的命中率、使用率与脏块率必然是重要的性能指标。

关于Innodb有很多参数指标:

//innodb文件读写次数

innodb_data_reads:innodb平均每秒从文件中读取的次数

innodb_data_writes:innodb平均每秒从文件中写入的次数

innodb_data_fsyncs:innodb平均每秒进行fsync()操作的次数

//innodb读写量

innodb_data_read:innodb平均每秒钟读取的数据量,单位为KB

innodb_data_written:innodb平均每秒钟写入的数据量,单位为KB

//innodb缓冲池状态

innodb_buffer_pool_reads: 平均每秒从物理磁盘读取页的次数 

innodb_buffer_pool_read_requests: 平均每秒从innodb缓冲池的读次数(逻辑读请求数)

innodb_buffer_pool_write_requests: 平均每秒向innodb缓冲池的写次数

innodb_buffer_pool_pages_dirty: 平均每秒innodb缓存池中脏页的数目

innodb_buffer_pool_pages_flushed: 平均每秒innodb缓存池中刷新页请求的数目

而InnoDB缓存读命中率、使用率、脏块率(%)主要就是根据上面参数计算出来的

innodb缓冲池的读命中率 = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

Innodb缓冲池的利用率 =  ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100

Innodb缓冲池的脏块的百分率 = (innodb_buffer_pool_pages_dirty / innodb_buffer_pool_pages_total) * 100

5. 网络流量(平均每秒的输入输出量)

MySql数据的网络流量监控可通过计算单位时间内Bytes_received与Bytes_sent获取。

Bytes_received/s:平均每秒从所有客户端接收到的字节数,单位KB

Bytes_sent/s:平均每秒发送给所有客户端的字节数,单位KB

6、MySql中InnoDB引擎每秒钟查询次数、插入次数、删除次数、更新次数的统计

MySql数据库全局的查询、插入、删除、更新次数可通过show  global status like "%innodb_rows%"命令来查看,而计算单位时间内的上述各项指标即可获取InnoDB引擎每秒钟查询次数、插入次数、删除次数、更新次数

InnoDB引擎每秒钟查询次数 = Innodb_rows_read/s

InnoDB引擎每秒钟插入次数 = Innodb_rows_inserted/s

InnoDB引擎每秒钟删除次数 = Innodb_rows_deleted/s

InnoDB引擎每秒钟删除次数 = Innodb_rows_updated/s

 

以上就是MySql数据库中一些主要性能指标的计算与统计方式,监控与统计这些性能指标,一方面可以对MySql数据库的运行状态进行监控,另一方面也可以通过某性能指标的异常查找与定位问题所在,希望对大家项目中MySql数据库的使用有所帮助,其中如有不足与不正确的地方还望指出与海涵。

 

关注微信公众号,查看更多技术文章。

 

技术图片

MySql主要性能指标说明

标签:process   strong   ODB   请求   mysql   网络   数据引擎   内存使用率   命令   

人气教程排行