- 浏览: 2653169 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
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 性能监控脚本”及其在IT领域的应用。 MySQL性能监控脚本通常是...
MySQL性能监控是数据库管理员和开发人员的关键技能,它有助于确保系统的高效运行,及时发现并解决潜在问题。在MySQL环境中,性能监控涉及多个方面,包括查询分析、资源使用情况、索引优化以及配置调整等。本资料包...
本文将深入探讨MySQL性能监控的重要性以及具体的实施方法。 #### MySQL的特点 MySQL之所以能够在众多数据库系统中脱颖而出,得益于其独特的特性: - **开放源代码**:MySQL的源代码对公众开放,这使得任何人都...
MySQL性能监控工具是数据库管理员用来优化和管理MySQL服务器的关键组件,它们可以帮助监控数据库的运行状况,识别性能瓶颈,以及提供优化建议。MONyog是其中的一款著名工具,它提供了直观的用户界面,使得数据库监控...
很好用的mysql性能监控工具 安装它需要的perl 库,它需要以下几个perl库: Term::ReadKey => 2.10, DBI => 1.13, DBD::mysql => 1.0, InnoDBParser => 1.1 其中,InnoDBParser 它本身自带。 我们这里采用CPAN来...
MONyog MySQL数据库监控管理工具被称作“MySQL DBA in a box'”,它可以帮助MySQL DBA管理调优更多的服务器并在出现严重性能问题前找到症结所在。 MONyog可以动态地监控企业数据库环境,并针对MySQL系统安全性、...
MySQL性能监控工具Innotop是一款专门用于监视MySQL和InnoDB数据库状态的实用程序,由Perl语言编写,具备跨平台的灵活性。它提供了丰富的实时监控数据,帮助数据库管理员(DBA)分析MySQL服务器的运行状况,从而进行...
MySQLGlance 是一个轻量级的 mysql 性能监控工具,由 parnassusdata.com 开发。 它只会关注最重要的指标。 您无需任何先决条件即可轻松运行它。 它会要求很少的权限:将 performance_schema.* 上的选择授予 $...
总的来说,MySQL性能监控与诊断是一门深奥的艺术,需要结合多种工具和策略,持续不断地观察、分析和优化,以确保数据库的高效运行。对于大型互联网公司来说,建立一套完善且强大的监控与诊断体系至关重要,能够提前...
二、MySQL性能监控与调优 MySQL作为常用的开源关系型数据库,其性能监控和调优包括: 1. **查询优化**:编写高效的SQL语句,避免全表扫描,使用索引,减少JOIN操作。 2. **索引管理**:合理创建和使用索引,定期...
1. MySQL性能监控:如pt-query-digest、Percona Monitoring and Management (PMM) 可以分析慢查询日志,找出性能瓶颈。 2. 系统资源监控:使用工具如top、iostat、vmstat、sysstat等监控CPU、内存、磁盘I/O和网络...
mysqlreport是一款用于简化MySQL性能监控过程的工具,它能够自动搜集并分析MySQL的关键指标,形成易于阅读和理解的报告。通过该工具,管理员可以快速了解MySQL当前的状态及潜在的问题所在。 **官方网站**: ...
以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服务器性能和服务监控等方面多...
《LoadRunner 11与SiteScope 9.5在MySQL性能监控中的应用详解》 在IT运维领域,性能监控是确保系统稳定运行的关键环节。LoadRunner作为一款强大的负载测试工具,能够模拟大量用户并发访问系统,检测其在高负载下的...
对于MySQL性能监控,我们需要在`services.cfg`文件中添加相应的服务检查。例如,可以定义检查MySQL服务是否在线的命令,以及定期检查MySQL的查询速度、内存使用、连接数等性能指标。这些检查可以通过`nagios-plugins...
此外,可能还会讲解如何通过日志分析(如慢查询日志)找出性能瓶颈,以及如何使用MySQL性能监视工具(如Percona Toolkit或MySQL Enterprise Monitor)进行性能诊断。 Q&A环节通常会涵盖听众关心的问题,可能包括...
这个项目源码的发布,为开发者提供了深入理解MySQL性能监控机制和Go语言编程的一个实例。下面将详细介绍相关知识点。 1. **Go语言**:Go(又称Golang)是Google开发的一种静态类型、编译型、并发型且具有垃圾回收...
【Prometheus监控MySQL详解】 Prometheus是一款源自Google Borgmon的开源监控系统...综上所述,结合Prometheus和Grafana的监控方案,可以提供全面且直观的MySQL服务器性能监控,帮助企业更好地管理和优化数据库系统。