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

MySQL性能指标及计算方法相关推荐

  1. mysql获取当前时间毫秒_MySQL性能指标及计算方法

    是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发 | 数据分析  人工智能+Python | 人工智能+物联网 来源:小职(z_zhizuobiao ...

  2. MySQL性能指标TPS+QPS+IOPS压测

    1.前言 今天主要介绍MySQL数据库,或者说所有数据库的三个关键性能指标TPS\QPS\IOPS 2.性能指标概览 QPS(Queries Per Second): 就是每秒的查询数,对数据库而言就 ...

  3. Mysql的key_len计算方法

    说明 使用mysql的explain时,ken_len表示索引使用的字节数,根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段是否都被查询用到. 环境 Mysql 5.6. ...

  4. Mysql性能指标量化指标

    1 背景 如果只是从书上看很多Mysql资料,但是没有具体场景数值支持,容易造成纸上谈兵的缺陷 2  Mysql-Sever配置 双节点  8核, 16g 3  表容量 45229130   ,可以理 ...

  5. 大数据实验报告总结体会_大数据挖掘流程及方法总结

    是新朋友吗?记得先点蓝字关注我哦- 今日课程菜单 Java全栈开发 | Web前端+H5 大数据开发| 数据分析  人工智能+Python | 人工智能+物联网 来源:小职(z_zhizuobiao) ...

  6. mysql数据库最大性能_数据库Mysql性能优化

    关于本文,笔者参考了一下其他博主的资料,加上个人的认知和理解,先整理如下: 在mysql数据库中,mysql key_buffer_size是对MyISAM表性能影响最大的一个参数(注意该参数对其他类 ...

  7. (转)使用mysqladmin ext了解MySQL运行状态

    来源:http://www.jb51.net/article/48169.htm mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状 ...

  8. zabbix icmp ping 监控主机_Zabbix监控 MySQL 性能

    通过自带的 Template DB MySQL 模板监控 MySQL 性能 具体步骤: 1)创建脚本存放目录并编辑脚本 # mkdir /etc/zabbix/script # vim /etc/za ...

  9. linux mysql 运行状态_Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态...

    mysqladmin是MySQL一个重要的客户端,最常见的是使用它来关闭数据库,除此,该命令还可以了解MySQL运行状态.进程信息.进程杀死等.本文介绍一下如何使用mysqladmin extende ...

最新文章

  1. Wordpress 更新时 不输入ftp相关信息的方法
  2. Vue团队核心成员开发的39行小工具 install-pkg 安装包,值得一学!
  3. 中添加2000坐标系_ArcGIS API for JavaScript 4.16在三维场景中以天地图为底图加载2000坐标系的倾斜摄影数据...
  4. Linux学习总结(41)——运维不仅仅是Linux
  5. 三种分布式锁 简易说说(包含前一篇提到的redis分布式锁)
  6. Python学习【第2篇】:基本数据类型(详解)
  7. JS + HTml 时钟代码实现
  8. PLC可编程控制器的应用
  9. linux中,ls -l命令显示的total的含义。
  10. matlab对比度拉伸,[转载][数字图像处理学习]分段线性变换函数——对比度拉伸...
  11. 查看oracle归档日志scn,Oracle 归档日志
  12. Live800:企业必修课|新时代的全渠道营销解析(上)
  13. ERROR: Cannot uninstall ‘filelock‘. It is a distutils installed project and thus we cannot accuratel
  14. 如何制作一个高转化的广告落地页(文末有福利)
  15. 集成友盟第三方实现QQ微信登录遇到的坑
  16. Springboot中使用阿里云短信验证码服务
  17. Matter协议与Zigbee
  18. Vue 中实现Video视频不可快进
  19. 利用samba漏洞入侵linux主机(samba低版本漏洞利用)
  20. 为了让师妹20分钟学会canvas,我熬夜苦肝本文外加一个小项目【❤️建议收藏❤️】

热门文章

  1. new失败跟踪函数_WinDbg预览时间线:调试器中的时间线可以允许用户记录跟踪
  2. java script this_JavaScript this 关键字
  3. saml java实现_java-saml
  4. linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题
  5. 栈的应用--数制转换
  6. c语言 sqlite_SQLite与C语言
  7. java enummap_Java EnumMap size()方法与示例
  8. Java FileInputStream close()方法与示例
  9. java timezone_Java TimeZone inDaylightTime()方法及示例
  10. bst 删除节点_C ++程序查找具有N个节点的BST数量(加泰罗尼亚编号)