MySQL性能指标及计算方法

MySQL性能指标及计算方法

绝大多数MySQL性能指标可以通过以下两种方式获取:

(1)mysqladmin

使用mysqladmin extended-status命令获得的MySQL的性能指标,默认为累计值。如果想了解当前状态,需要进行差值计算;加上参数 --relative(-r),就可以看到各个指标的差值,配合参数--sleep(-i)就可以指定刷新的频率。

 

(2)Show global status

可以列出MySQL服务器运行各种状态值,累计值

mysqladmin extended-status命令及show global status得到的指标项特别多。实际应用中,重点关注以下性能指标:

1. tps/qps

tps: Transactions Per Second,每秒事务数;

qps: Queries Per Second每秒查询数;

通常有两种方法计算tps/qps:

方法1:基于  com_commit、com_rollback 计算tps,基于 questions  计算qps。

TPS = Com_commit/s + Com_rollback/s

其中,

Com_commit /s= mysqladmin extended-status --relative --sleep=1|grep -w Com_commit

Com_rollback/s = mysqladmin extended-status --relative --sleep=1|grep -w Com_rollback

QPS 是指MySQL Server 每秒执行的Query总量,通过Questions (客户的查询数目)状态值每秒内的变化量来近似表示,所以有:

QPS = mysqladmin extended-status --relative --sleep=1|grep -w Questions

 

仿照上面的方法还可以得到,mysql每秒select、insert、update、delete的次数等,如:

Com_select/s = mysqladmin extended-status --relative --sleep=1|grep -w Com_select

Com_select/s:平均每秒select语句执行次数

Com_insert/s:平均每秒insert语句执行次数

Com_update/s:平均每秒update语句执行次数

Com_delete/s:平均每秒delete语句执行次数

 

方法2: 基于com_%计算tps ,qps

tps= Com_insert/s + Com_update/s + Com_delete/s

qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s

2. 线程状态

threads_running:当前正处于激活状态的线程个数

threads_connected:当前连接的线程的个数

3. 流量状态

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

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

4. innodb文件读写次数

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

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

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

5. innodb读写量

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

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

6. 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_buffer_read_hit_ratio = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

Innodb缓冲池的利用率

Innodb_buffer_usage =  ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100

7. innodb日志

innodb_os_log_fsyncs: 平均每秒向日志文件完成的fsync()写数量

innodb_os_log_written: 平均每秒写入日志文件的字节数

innodb_log_writes: 平均每秒向日志文件的物理写次数

innodb_log_write_requests: 平均每秒日志写请求数

8. innodb行

innodb_rows_deleted: 平均每秒从innodb表删除的行数

innodb_rows_inserted: 平均每秒从innodb表插入的行数

innodb_rows_read: 平均每秒从innodb表读取的行数

innodb_rows_updated: 平均每秒从innodb表更新的行数

innodb_row_lock_waits:  一行锁定必须等待的时间数

innodb_row_lock_time: 行锁定花费的总时间,单位毫秒

innodb_row_lock_time_avg: 行锁定的平均时间,单位毫秒

9. MyISAM读写次数

key_read_requests: MyISAM平均每秒钟从缓冲池中的读取次数

Key_write_requests: MyISAM平均每秒钟从缓冲池中的写入次数

key_reads : MyISAM平均每秒钟从硬盘上读取的次数

key_writes : MyISAM平均每秒钟从硬盘上写入的次数

10. MyISAM缓冲池

MyISAM平均每秒key buffer利用率

Key_usage_ratio =Key_blocks_used/(Key_blocks_used+Key_blocks_unused)*100

MyISAM平均每秒key buffer读命中率

Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100

MyISAM平均每秒key buffer写命中率

Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100

11. 临时表

Created_tmp_disk_tables: 服务器执行语句时在硬盘上自动创建的临时表的数量

Created_tmp_tables: 服务器执行语句时自动创建的内存中的临时表的数量

Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,可能是排序句子过多或者连接句子不够优化

12. 其他

slow_queries: 执行时间超过long_query_time秒的查询的个数(重要)

sort_rows: 已经排序的行数

open_files: 打开的文件的数目

open_tables: 当前打开的表的数量

select_scan: 对第一个表进行完全扫描的联接的数量

 

此外,还有一些性能指标不能通过mysqladmin extended-status或show global status直接得到,但是十分重要。

13. response time: 响应时间

Percona提供了tcprstat工具统计响应时间,此功能默认是关闭的,可以通过设置参数query_response_time_stats=1打开这个功能。

有两种方法查看响应时间:

(1)通过命令SHOW QUERY_RESPONSE_TIME查看响应时间统计;

(2)通过INFORMATION_SCHEMA里面的表QUERY_RESPONSE_TIME来查看。

http://www.orczhou.com/index.php/2011/09/thanks-percona-response-time-distribution/comment-page-1/(参考文章)

 14. Slave delay: 备库延迟

可以在slave节点上执行show slave status\G命令,Seconds_Behind_Master项的值即为slave当前的延时量,单位秒。

转载于:https://www.cnblogs.com/cyt1153/p/6697847.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393206.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php可变变量讲解,PHP可变变量实例详解

什么是可变变量?在PHP中有一个其他类型的变量,“可变变量”。可变变量是一种PHP独特的变量,他允许动态改变一个变量的名称。可变变量的工作原理这个特性的工作原理是用一个变量的值作为另一个变量的名称。例如,我们可以设置$str的…

Nginx平滑升级到最新版本

(一)简述: 早上收到nginx最新漏洞的通知,Nginx官方发布最新的安全公告,在Nginx范围过滤器中发现了一个安全问题(CVE-2017-7529),通过精心构造的恶意请求可能会导致整数溢出并且不…

如何使用TypeScript从Microsoft Word生成GitHub markdown文件

by Manish Bansal通过Manish Bansal What? Why would one want to generate an MD file from a Microsoft word document? If that’s the first thought you had after reading this title, then let me give you a strong use case.什么? 为什么要从Microsoft …

Android Studio 导入 Android 系统模块并编译和调试

FAQ: AS导入系统模块源码,并且能够编译调试,正常查看java doc ???? Android AOSP基础(五)Android Studio调试系统源码的三种方式http://liuwangshu.cn/framework/aosp/5-debug-aosp.html Android AOSP基础(四&…

2014年ENVI/IDL遥感应用与开发培训班-11月重庆站 開始报名了

主办单位: 中国遥感应用协会 Esri中国信息技术有限公司 内容简单介绍: 依据中国遥感应用协会栾恩杰理事长推动国内遥感技术和应用的指示精神,2014年中国遥感应用协会组织培训交流部与Esri中国信息技术有限公司将共同在多个城市举办以"传…

Python自动化运维:Django之View视图和Template

views详解 http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象 (1) HttpRequest对象 当请求一个页面时,Django 创建一个 HttpRequest对象包含原数据的请求。然后 Django 加载…

leetcode491. 递增子序列(回溯算法)

给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7] 输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 代码 class Solution {List<List<Integer>>…

java重入锁,再探JAVA重入锁

之前的文章中简单的为大家介绍了重入锁JAVA并发之多线程基础(2)。这里面也是简单的为大家介绍了重入锁的几种性质&#xff0c;这里我们就去探索下里面是如何实现的。我们知道在使用的时候&#xff0c;必须锁先有定义&#xff0c;然后我们再拿着当前的锁进行加锁操作&#xff0c…

azure服务器_如何使用Azure Functions和SendGrid构建无服务器报表服务器

azure服务器It’s 2018 and I just wrote a title that contains the words “Serverless server”. Life has no meaning.那是2018年&#xff0c;我刚刚写了一个标题&#xff0c;其中包含“无服务器服务器”一词。 生活没有意义。 Despite that utterly contradictory headli…

【GoWeb开发实战】Cookie

cookie Web开发中一个很重要的议题就是如何做好用户的整个浏览过程的控制&#xff0c;因为HTTP协议是无状态的&#xff0c;所以用户的每一次请求都是无状态的&#xff0c;我们不知道在整个Web操作过程中哪些连接与该用户有关&#xff0c;我们应该如何来解决这个问题呢&#xff…

PhotoKit 照片库的管理-获取图像

PHAsset部分属性解析 1、HDR 和全景照片 mediaSubtypes 属性验证资源库中的图像在捕捉时是否开启了 HDR&#xff0c;拍摄时是否使用了相机应用的全景模式。 2、收藏和隐藏资源 要验证一个资源是否被用户标记为收藏或被隐藏&#xff0c;只要检查 PHAsset 实例的 favorite 和 hid…

cmail服务器安装后无法登录的解决办法

安装cmailserver 5.4.6软件安装、注册都非常顺利&#xff0c;webmail页面也都正常打开&#xff0c;但是一点“登录”就提示错误&#xff1a; Microsoft VBScript 运行时错误 错误 800a01ad ActiveX 部件不能创建对象: CMailCOM.POP3.1 /mail/login.asp&#xff0c;行 42 点“…

matlab对人工智能,MATLAB与人工智能深度学习和机器学习.PDF

MATLAB与人工智能深度学习和机器学习MATLAB 与人工智能&#xff1a;深度学习有多远&#xff1f;© 2017 The MathWorks, Inc.1机器学习8机器学习无处不在▪ 图像识别 [TBD]▪ 语音识别▪ 股票预测▪ 医疗诊断▪ 数据分析▪ 机器人▪ 更多……9什么是机器学习&#xff1f;机…

leetcode1471. 数组中的 k 个最强值(排序)

给你一个整数数组 arr 和一个整数 k 。 设 m 为数组的中位数&#xff0c;只要满足下述两个前提之一&#xff0c;就可以判定 arr[i] 的值比 arr[j] 的值更强&#xff1a; |arr[i] - m| > |arr[j] - m| |arr[i] - m| |arr[j] - m|&#xff0c;且 arr[i] > arr[j] 请返回…

Spring中WebApplicationInitializer的理解

现在JavaConfig配置方式在逐步取代xml配置方式。而WebApplicationInitializer可以看做是Web.xml的替代&#xff0c;它是一个接口。通过实现WebApplicationInitializer&#xff0c;在其中可以添加servlet&#xff0c;listener等&#xff0c;在加载Web项目的时候会加载这个接口实…

使用fetch封装请求_关于如何使用Fetch API执行HTTP请求的实用ES6指南

使用fetch封装请求In this guide, I’ll show you how to use the Fetch API (ES6) to perform HTTP requests to an REST API with some practical examples you’ll most likely encounter.在本指南中&#xff0c;我将向您展示如何使用Fetch API(ES6 )来执行对REST API的 HTT…

hadoop集群中客户端修改、删除文件失败

这是因为hadoop集群在启动时自动进入安全模式 查看安全模式状态&#xff1a;hadoop fs –safemode get 进入安全模式状态&#xff1a;hadoop fs –safemode enter 退出安全模式状态&#xff1a;hadoop fs –safemode leave转载于:https://www.cnblogs.com/lishengnan/p/a123.ht…

OpenStack nova-network 支持多vlan技术实现片段代码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

Rest API

什么是接口测试 接口测试又称 API 测试 Application Programming Interface 接口测试是测试系统组件间接口的一种测试。重点关注数据传递。 接口测试一般会用于多系统间交互开发&#xff0c;或者拥有多个子系统的应用系统开发的测试。 为什么要做接口测试 很多系统关联都是基于…

php循环checkbox,php循环删除checkbox | 学步园

一、首先要了解sql语句$SQLdelete from user where id in (1,2,4);表单大概是&#xff1a;form action methodpost input nameID_Dele[] typecheckbox idID_Dele[] value1input nameID_Dele[] typecheckbox idID_Dele[] value2input nameID_Dele[] type首先要了解sql语句$SQL&q…