MySQL监控

Mysql 监控
mysql大多数问题出现在SQL语句和索引上。

一、慢查询日志分析

show variables like ‘%slow%‘     /*查看是否开启了慢查询日志*/
set @@global.slow_query_log = ON    /*开启全局慢查询日志,重启mysql失效*/

如果想重启之后有效,需要修改mysql的配置文件my.cnf。在my.cnf的最后添加上:

1 slow_query_log      //开启慢查询日志
2 slow_query_log_file=/usr/local/mysql/data/zhoucentos-slow.log //日志的位置
3 long_query_time=0.1     //设定时间为0.1秒,如果查询时间大于0.1的sql语句都会被记录到 日志文件里。

Linux系统使用mysql自带命令mysqldumpslow查看

可通过 mysqldumpslow –help查看帮助信息

-s,是order的排序,主要有 c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序

-a,倒序排列

-t,是top n的意思,即为返回前面多少条的数据

-g,后边可以写一个正则匹配模式,大小写不敏感的

mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令分别可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回前10条里面含有左连接的sql语句。

图例中的命令:mysqldumpslow –s at- t 50
host-slow.log 显示出耗时最长的50个SQL语句的执行信息

以Count: 32 
Time=0.26s (8s)  Lock=0.00s
(0s)  Rows=10.0 (320),
wos_20120719[wos_20120719]@2host 为例:

Count: 32  该SQL总共执行32次

Time = 0.26s (8s)  平均每次执行该SQL耗时0.26秒,总共耗时32(次)*0.26(秒)=8秒。

Lock=0.00s(0s)   lock时间0秒

Rows =10.0(320)  每次执行SQL影响数据库表中的10行记录,总共影响 10(行)*32(次)=320行记录

批注:1次查询10条记录所用时间   小于  1次1条查询10次所用时间!

二、连接数

1 show variables like ‘%connections%‘ /*查看最大的连接数*/
2
3 show status like ‘%connection%‘ /*查看连接的状态*/4 Connections :试图连接MySQL服务器的次数;
5 max_connections:整个MySQL允许的最大连接数;
1 show status like ‘%thread%‘
2 其中:
3 Threads_connected 当前打开的连接的数量
4 Threads_cached 线程缓存内的线程的数量
5 Threads_created 创建的线程数
6 Threads_running 激活的(非睡眠状态)线程数 

三、缓冲池

1 show variables like ‘%buffer_pool_size%‘ 默认是134兆,如果服务器的内存是32G,设置为20G对服务器的性能提升是非常大的!
2 show status like ‘%buffer%‘;
3 其中:
4 Innodb_buffer_pool_reads:缓冲池中没有读到数据,而从磁盘内读取的次数
5 Innodb_buffer_pool_read_requests:来缓冲池中读数据的次数
6 Innodb_buffer_pool_pages_total:缓冲池的总页数(内存是以页为单位)
7 Innodb_buffer_pool_pages_free:缓冲池中处于空闲状态的页数

命中率:innodb_buffer_read_hits=(1-Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests)*100%

========================================================================================
四、查询缓存(一般默认)
show variables like ‘%query_cache%‘; 查询缓存的本身存在一种算法,如果更新了查询语句就直接去硬盘读取数据,本身也消耗一些性能,所以查询缓存的size很小
show status like ‘%Qcache%‘
查询缓存百分比:Query_cache_hits=(Qcache_hits/(Qcache_hits+Qcache_inserts))*100%

五、线程缓存(连接池,一般默认)
show variables like ‘%thread%‘
show status like ‘connections‘  试图连接mysql的次数
show status like ‘%thread%‘
线程缓存命中率:Threads_Cache_Hit=(Connections-Threads_created)/Connections*100%

六、表锁和行锁
show status like ‘%lock%‘;
存储引擎:早期mysql用的,MyISAM(表锁),现在都用Innodb(行锁)
MyISAM:支持表锁
Innodb:支持行锁

时间: 2024-10-13 01:52:35

MySQL监控的相关文章

MySQL监控、性能分析——工具篇

MySQL越来越被更多企业接受,随着企业发展,MySQL存储数据日益膨胀,MySQL的性能分析.监控预警.容量扩展议题越来越多.“工欲善其 事,必先利其器”,那么我们如何在进行MySQL性能分析.监控预警.容量扩展问题上得到更好的解决方案,就要利用各种工具来对MySQL各种指标进行分 析.本文是读书笔记,下面提及的工具,读者可能都用过,或打算准备是使用.MySQL服务器的发布包没有包含那些能完成许多常见任务的工具,例如监控服务器的工具.比较服务器间数据的工具.我们把这些工具分成以下几类:界面.监

第23章 mysql 监控

2015-10-25 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] mysql常用监控脚本命令整理 [4] MySQL监控应该知道的九件事 [5] MySQL Enterprise Monitor [6] ZABBIX监控MYSQL [7] MySQL InnoDB监控 [8] mysql性能监控指标 [9] MyS

详解 Spotlight on MySQL监控MySQL服务器

详解 Spotlight on MySQL监控MySQL服务器 前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/Javame/p/3685512.html 第一步: 下载并安装mysql-connector-3.5x Spotlight on MySQL 连接mysql必须使用mysql-connector-3.5x,5.3.2版本我试了下不行,有

mysql监控、性能调优及三范式理解

原文:mysql监控.性能调优及三范式理解 1监控 工具:sp on mysql     sp系列可监控各种数据库 2调优 2.1 DB层操作与调优 2.1.1.开启慢查询 在My.cnf文件中添加如下内容(如果不知道my.cnf的路径可使用find / -name my.cnf进行查找): 在mysqld下添加 Log_slow_queries = ON  作用:开启慢查询服务 Log-slow-queries = /var/log/slowqueries.log 作用:慢查询日志存储路径.

MySQL监控性能的一些方法总结

---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类.---物理读,真正有IO:逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体对象在缓存区中的命中率.---所以,使用数据缓存区技术的,都可以有类似的方式.但是,这仅是从IO的角度去衡量数据库的性能的.即不完全可靠.---其次,MySQL提供了一些方式,用以考察IO的使用情况.---MySQL方式1:区分"索引读"还是"随机读".这种情况,不从缓

MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控

第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一个系统,无论如何设计如何维护,都无法完全避免出现异常的可能,监控系统就是根据系统的各项状态的分析,让我们能够尽可能多的提前预知系统可能会出现的异常状况.即使没有及时发现将要发生的异常,也要在异常出现后的第一时间知道系统已经出现异常,否则之前的设计工作很可能就白费了. 18.1 监控系统设计 系统监控

Zabbix 的 MySQL 监控客户端配置

Zabbix监控的方式有四个大方向: 1,Zabbix Agent类型 2,SNMP类型 3,JMX类型 4,IMPI类型 用的多的基本上就两种,Agent类型 和 SNMP类型. Agent类型的item是使用部署在服务端的Agent来获取数据,可以分为主动和被动模式. SNMP是监控服务器以外设备的非常好的方式,比如可以监控网络设备,打印机等,只要是有SNMP功能的,zabbix都可以监控. 今天我们要说的MySQL监控是基于Agent类型的监控. 我们来看看服务端的默认模板: item 有

MySQL监控方案

MySQL监控

Mysql 监控小脚本

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MyS