`
san_yun
  • 浏览: 2653187 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql 性能监控

 
阅读更多


QPS
QPS(每秒 Query 量 ) 里 的 QPS 实际上是指 MySQL Server 每秒执行的 Query总量,在 MySQL 5.1.30 及以下版本可以通过 Questions 状态值每秒内的变化量来近似表示,而从 MySQL 5.1.31 开始,则可以通过 Queries 来表示。Queries 是在 MySQL 5.1.31 才新增的状态变量。主要解决的问题就是 Questions 状态变量并没有记录存储过程中所执行的 Query(当然,在无存储过程的老版本 MySQL 中则不存在这个区别),而 Queries 状态变量则会记录。二者获取方式:
QPS = Questions(or Queries) / Seconds
获取所需状态变量值:
SHOW /*!50000 GLOBAL */ STATUS LIKE 'Questions'
SHOW /*!50000 GLOBAL */ STATUS LIKE 'Queries'


Innodb Buffer 命中率

这里 Innodb Buffer 所指的是 innodb_buffer_pool,也就是用来缓存 Innodb 类型表的数据和索引的内存空间。类似 Key buffer,我们同样可以根据 MySQL Server 提供的相应状态值计算出其命中率:
innodb_buffer_read_hits=(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100%

获取所需状态变量值:
sky@localhost : (none) 08:25:14> SHOW /*!50000 GLOBAL*/ STATUS
-> LIKE 'Innodb_buffer_pool_read%';
+-----------------------------------+-------+
| Variable_name                    | Value |
+-----------------------------------+-------+
... ...
| Innodb_buffer_pool_read_requests | 5367 |
| Innodb_buffer_pool_reads         | 507 |
+-----------------------------------+-------+

Thread Cache 命中率
Thread Cache 命中率:Thread Cache 命中率能够直接反应出我们的系统参数,thread_cache_size 设置的是否合理。一个合理的 thread_cache_size 参数能够节约大量创建新连接时所需要消耗的资源。Thread Cache 命中率计算方式如下:
Thread_cache_hits = (1 - Threads_created / Connections) * 100%

获取所需状态变量值:
sky@localhost : (none) 08:57:16> SHOW /*!50000 GLOBAL*/ STATUS LIKE 'Thread%';

sky@localhost : (none) 09:01:33> SHOW /*!50000 GLOBAL*/ STATUS LIKE 'Connections';
正常来说,Thread Cache 命中率要在 90% 以上才算比较合理。


锁定状态:
锁定状态包括表锁和行锁两种,我们可以通过系统状态变量获得锁定总次数,锁定造成其他线程等待的次数,以及锁定等待时间信息。

sky@localhost : (none) 09:01:44> SHOW /*!50000 GLOBAL*/ STATUS
-> LIKE '%lock%';

+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
... ...
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_time          | 0 |
| Innodb_row_lock_time_avg      | 0 |
| Innodb_row_lock_time_max      | 0 |
| Innodb_row_lock_waits         | 0 |
... ...
| Table_locks_immediate         | 44|
| Table_locks_waited            | 0 |
+-------------------------------+-------+

通过上述系统变量,我们可以得出表锁总次数,其中造成其他现线程等待的次数。同时还可以得到非常详细的行锁信息,如行锁总次数,行锁总时间,每次行锁等待时间,行锁造成最大等待时间以及当前等待行锁的线程数。通过对这些量的监控,
我们可以清晰的了解到系统整体的锁定是否严重。如当 Table_locks_waited 与Table_locks_immediate 的比值较大,
则说明我们的表锁造成的阻塞比较严重,可能需要调整 Query 语句,或者更改存储引擎,亦或者需要调整业务逻辑。当然,
具体改善方式必须根据实际场景来判断。而 Innodb_row_lock_waits 较大,则说明 Innodb 的行锁也比较严重,且影响了其他线程的正常处理。同样需要查找出原因并解决。造成 Innodb 行锁严重的原因可能是 Query 语句所利用的索引不够合理(Innodb 行锁是基于索引来锁定的),造成间隙锁过大。也可能是系统本身处理能力有限,则需要从其他方面(如硬件设备)来考虑解决。

复制延时量
复制延时量将直接影响了 Slave 数据库处于不一致状态的时间长短。如果我们是通过 Slave 来提供读服务,就不得不重视这个延时量。我们可以通过在 Slave 节点上执行“SHOW SLAVE STATUS”命 令, Seconds_Behind_Master 项
取的值来了解 Slave 当前的延时量(单位:秒)。当然,该值的准确性依赖于复制是否处于正常状态。每个环境下的 Slave 所允许的延时长短与具体环境有关,所以复制延时多长时间是合理的,只能由读者朋友根据各自实际的应用环境来判断。


Tmp table 状况

Tmp Table 的状况主要是用于监控 MySQL 使用临时表的量是否过多,是否有临时表过大而不得不从内存中换出到磁盘文件上。临时表使用状态信息可以通过如下方式获得:

SHOW /*!50000 GLOBAL*/ STATUS LIKE 'Created_tmp%';
| Created_tmp_disk_tables | 1|
Created_tmp_tables|46|

从上面的状态信息可以了解到系统使用了 46 次临时表,其中有 1 次临时表比较大,无法在内存中完成,而不得不使用到磁盘文件。如果 Created_tmp_tables 非常大 ,则可能是系统中排序操作过多,或者是表连接方式不是很优化。而如果是Created_tmp_disk_tables 与 Created_tmp_tables 的比率过高,如超过 10%,则我们需要考虑是否 tmp_table_size 这个系统参数所设置的足够大。当然,如果系统内存有限,也就没有太多好的解决办法了。

分享到:
评论

相关推荐

    mysql 性能监控脚本

    MySQL性能监控是数据库管理员日常工作中不可或缺的部分,它可以帮助我们及时发现和解决系统性能问题,确保数据库高效稳定运行。本文将详细介绍“mysql 性能监控脚本”及其在IT领域的应用。 MySQL性能监控脚本通常是...

    mysql性能监控学习.zip

    MySQL性能监控是数据库管理员和开发人员的关键技能,它有助于确保系统的高效运行,及时发现并解决潜在问题。在MySQL环境中,性能监控涉及多个方面,包括查询分析、资源使用情况、索引优化以及配置调整等。本资料包...

    MySQL性能监控:守护数据库健康的哨兵

    本文将深入探讨MySQL性能监控的重要性以及具体的实施方法。 #### MySQL的特点 MySQL之所以能够在众多数据库系统中脱颖而出,得益于其独特的特性: - **开放源代码**:MySQL的源代码对公众开放,这使得任何人都...

    Mysql性能监控工具

    MySQL性能监控工具是数据库管理员用来优化和管理MySQL服务器的关键组件,它们可以帮助监控数据库的运行状况,识别性能瓶颈,以及提供优化建议。MONyog是其中的一款著名工具,它提供了直观的用户界面,使得数据库监控...

    innotop mysql性能监控

    很好用的mysql性能监控工具 安装它需要的perl 库,它需要以下几个perl库: Term::ReadKey => 2.10, DBI => 1.13, DBD::mysql => 1.0, InnoDBParser => 1.1 其中,InnoDBParser 它本身自带。 我们这里采用CPAN来...

    MySQL性能监控工具-MONyog-5.6.6-3安装文件及其破解

    MONyog MySQL数据库监控管理工具被称作“MySQL DBA in a box'”,它可以帮助MySQL DBA管理调优更多的服务器并在出现严重性能问题前找到症结所在。  MONyog可以动态地监控企业数据库环境,并针对MySQL系统安全性、...

    mysql性能监控工具Innotop简介及配置

    MySQL性能监控工具Innotop是一款专门用于监视MySQL和InnoDB数据库状态的实用程序,由Perl语言编写,具备跨平台的灵活性。它提供了丰富的实时监控数据,帮助数据库管理员(DBA)分析MySQL服务器的运行状况,从而进行...

    MySQLGlance:轻量级的mysql性能监控工具-开源

    MySQLGlance 是一个轻量级的 mysql 性能监控工具,由 parnassusdata.com 开发。 它只会关注最重要的指标。 您无需任何先决条件即可轻松运行它。 它会要求很少的权限:将 performance_schema.* 上的选择授予 $...

    MySQL数据库性能监控与诊断

    总的来说,MySQL性能监控与诊断是一门深奥的艺术,需要结合多种工具和策略,持续不断地观察、分析和优化,以确保数据库的高效运行。对于大型互联网公司来说,建立一套完善且强大的监控与诊断体系至关重要,能够提前...

    Tomcat和MySql和Jvm和Oracle性能监控和调优

    二、MySQL性能监控与调优 MySQL作为常用的开源关系型数据库,其性能监控和调优包括: 1. **查询优化**:编写高效的SQL语句,避免全表扫描,使用索引,减少JOIN操作。 2. **索引管理**:合理创建和使用索引,定期...

    mysql 性能优化与架构设计(word版)

    1. MySQL性能监控:如pt-query-digest、Percona Monitoring and Management (PMM) 可以分析慢查询日志,找出性能瓶颈。 2. 系统资源监控:使用工具如top、iostat、vmstat、sysstat等监控CPU、内存、磁盘I/O和网络...

    MySQL 效能监控工具

    mysqlreport是一款用于简化MySQL性能监控过程的工具,它能够自动搜集并分析MySQL的关键指标,形成易于阅读和理解的报告。通过该工具,管理员可以快速了解MySQL当前的状态及潜在的问题所在。 **官方网站**: ...

    MySQL管理之道+性能调优、高可用与监控

    以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服务器性能和服务监控等方面多...

    Loadrunner11+Sitescope9.5监控MySQL性能.zip

    《LoadRunner 11与SiteScope 9.5在MySQL性能监控中的应用详解》 在IT运维领域,性能监控是确保系统稳定运行的关键环节。LoadRunner作为一款强大的负载测试工具,能够模拟大量用户并发访问系统,检测其在高负载下的...

    MySQL性能监控软件Nagios的安装及配置教程

    对于MySQL性能监控,我们需要在`services.cfg`文件中添加相应的服务检查。例如,可以定义检查MySQL服务是否在线的命令,以及定期检查MySQL的查询速度、内存使用、连接数等性能指标。这些检查可以通过`nagios-plugins...

    大牛讲解的MySQL介绍及性能优化 PPT

    此外,可能还会讲解如何通过日志分析(如慢查询日志)找出性能瓶颈,以及如何使用MySQL性能监视工具(如Percona Toolkit或MySQL Enterprise Monitor)进行性能诊断。 Q&A环节通常会涵盖听众关心的问题,可能包括...

    mysql性能数据采集器.zip

    这个项目源码的发布,为开发者提供了深入理解MySQL性能监控机制和Go语言编程的一个实例。下面将详细介绍相关知识点。 1. **Go语言**:Go(又称Golang)是Google开发的一种静态类型、编译型、并发型且具有垃圾回收...

    利用Prometheus与Grafana对Mysql服务器的性能监控详解

    【Prometheus监控MySQL详解】 Prometheus是一款源自Google Borgmon的开源监控系统...综上所述,结合Prometheus和Grafana的监控方案,可以提供全面且直观的MySQL服务器性能监控,帮助企业更好地管理和优化数据库系统。

Global site tag (gtag.js) - Google Analytics