`
jayyanzhang2010
  • 浏览: 377752 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

 
阅读更多

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

  • 带界面的工具
    1、MySQL可视化工具
    这些工具都可以免费使用: 

     

    a、MySQL查询浏览器(MySQL Query Browser):这个不用说了…
    b、MySQL管理员(MySQL Administrator):功能集中在服务器管理上,所以它最适合DBA使用,而不是开发人员和分析人员。它可以帮助DBA把创建备份 、创建用户并分配权限、显示服务器日志和状态信息等过程进行自动化处理。它还包括了一些基本的监控功能,例如图形化的状态变量显示,但是它没有下文里会提到的交互式监控工具那么灵活。
    c、MySQL迁移工具箱(MySQL Migration Tookit):可以帮你把数据从别的数据库系统迁移到MySQL里。
    d、MySQL工作台(MySQL Workbench):MySQL的建模工具。

    2、SQLyog
    SQLyog是最常用的MySQL可视化工具,只能用于win下。

    3、phpMyAdmin
    phpMyAdmin是一款很流行的管理工具,它基于Web界面来管理MySQL服务器。有很多支持者,但反对者也不少。

  • 监控工具
    MySQL监控是一个很大复杂的任务,不同的应用有着不同的需求。“监控”是大家滥用的术语之一,承载了几重意思。我们讲到的监控工具被分为非互动的和互动的两类。非互动监控常常就是一个自动化系统,它接收系统的测量值,如果有超出安全范围的,就通过发出警告提醒管理员。互动监控工具可以让你实时地观测服务器。 

     

    你可能对监控工具在其他方面的差别也很感兴趣,例如被动监控和主动监控,后者会发送报警信息并作出初步反应(就像Nagios一样);或者你可能正在寻找这样一工具:它可以创建一个信息仓库,而不仅仅是显示当前的统计信息。有许多监控系统不是专为监控MySQL而设计的,它们就是一个通用系统,里面设计了一个周期性的任务,定时去检查各类资源的状态,例如像服务器、路由器、以及各种软件(包括MySQL)。它们常常会提供一个插件架构,同时有一个预订的MySQL插件可供使用。这样的一些系统能够记录监控对象的状态,并通过web界面用图形化的形式表示出来。当监控对象出现问题,或者状态值超过安全范围时,它们还能发送报警信息,或者执行一个初始化的动作。

    a、非交互性工具

    1、Nagios
    监控界流行一句话:只要用顺了Nagios,你就永远不会再想到其它监控系统。
    对于Nagios本blog会持续推出相关文章,现在只是引用Nagios官方的介绍:
    Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。
    Nagios最初被设计为在Linux系统之上运行,然而它同样可以在类Unix的系统之上运行。
    Nagios更进一步的特征包括:监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
    监控主机资源(处理器负荷、磁盘利用率等);
    简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
    并行服务检查机制;
    具备定义网络分层结构的能力,用”parent”主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
    当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
    具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;
    自动的日志回滚;可以支持并实现对主机的冗余监控;可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

    下面是可代替Nagios的工具:

    i、Zenoss
    Zenoss是用Python编写的,拥有基于浏览器的用户界面,并使用了Ajax使操作更加快捷而富有效率。它将监控、报警、趋势显示、图表显示和记录历史数据等功能合成在一个统一的工具里,它还能在网上自动发现资源,在默认情况下,Zenoss使用SNMP从远程机器上收集数据,但它也可以使用SSH,并且支持Nagios插件。
    ii、Hyperic HQ
    Hyperic HQ是一款基于Java的监控系统,它的目标跟其他同类别的软件不太一样,它要成为企业级的监控系统。跟Zenoss一样,它也能自动发现资源,支持Nagios插件,但是它的逻辑组织和架构很不一样,显得有点庞大。至于它是不是合适你的需求,那要看你的参数设置和监控的方式了。
    iii、OpenNMS
    OpenNMS是由Java编写的,拥有一个活跃的开发者社区。它具备了常规的功能,例如监控和报警,也加入了图表和趋势显示的功能。它的目标是高性能、伸缩性、自动化以及良好的兼容性。跟Hyperic一样,它也企图成为一款企业级的监控软件,可以用于大型的关键系统上。
    iv、Groundwork Open Source
    Groundwork Open Source实际上是基于Nagios的,它把Nagios和其他几个工具集成为一个系统,并安上一个统一的门户界面。描述它的最好方法可能就是:如果你对Nagios、Cacti及其他工具很熟悉,并且能够花大量的时间把它们无缝地集成在一起的话,你也能在家庭作坊里做一个出来。
    v、Zabbix
    Zabbix是一个开源监控系统,在许多方面跟Nagios很相像,但是也有一些关键的不同点。例如:它把所有配置信息和其他数据都存放在一个数据库里,而不是放在配置文件里;它比Nagios存储了更多类型的数据,这样可以生成更好的趋势图和历史报告。它的网络图表和可视化功能也优于Nagios。很多使用它的人发现它更易配置,更具有兼容性。说起来它也能比Nagios少,它的报警功能也不够高级。

    2、MySQL监控和建议服务
    MySQL自己的监控方案就是设计用来监控MySQL实例的,但也能够监控主机的一些关键方面。这个工具不是开源的,需要MySQL企业订阅费。

    3、MONyog
    MONyog是一个轻量级的无代理的监控系统,它跟以上那些工具有着不同实现方法:它的底层是一个JavaScript引擎,所有配置都是通过JavaScrpt对象模型来完成的。它被设计为在桌面系统上运行,运行时它会在一个闲置的端口上打开一个HTTP监听器。这样,你就可以把你的浏览器指向这个端口,查看MySQL服务器的信息了,这信息都是结合了Javascript和Flash来表示的。MONyog实际上有交互式和非交互式两种类型,因此,你可以把两种类型的监控功能都尝试着用用看。

    4、基于RRDTool的系统
    严格地说,RRDTool不算是一个监控系统,但是,它很重要,有必要在此提到一下。很多组织里都是使用几种脚本或程序–这些一般都是自制的–从服务器那里读取信息,然后再保存到循环数据库(Round-robin database,RRD)文件里。在许多要获取记录生成图表的环境下,RRD文件是一个很合适的解决方案。它们能聚合输入的数据,如果输入数据值没有按期在随后提交进行时,还能在随后插入这些丢失的数据。它们还都带有强大的图表工具,能够生成漂亮的与众不同的图表。现在已经有一些基于RRDTOOL的系统可供使用了。

    a、Muti Router Traffic Grapher,或者叫MRTG就是一款典型的基于RRDTOOL的系统。它真正的设计初衷是记录网络数据流,但是它也被扩展用来记录和图表化表示其他一些东西。
    b、Munin是一个能为你采集数据的系统,将它放入RRDTool后,就会根据数据生成不同粒度的图表。它能从配置信息里生成静态的HTML文件,这样你就可以轻松地浏览,查看趋势情况。
    c、Cacti是另外一个常用的图表和趋势显示系统。它的工作方式是:从系统里获取数据,然后保存在RRD文件里,然后用PHP Web界面的形式,使用RRDTool把数据以图表的形式展示出来。这个显示界面也是配置和管理界面(配置信息存储在一个MySQL服务器里)。它是模板驱动的,因此,你可以自己定义模板,并放到你的系统里使用。

    d、Cricket是一个用Perl编写的跟Cacti类似的系统,使用的是基于文件的配置系统。Ganglia也跟Cacti类似,但它的设计初衷是永远监控群集和系统网络,因此,你可以查看到由许多服务器信息聚合得到的结果,也可以按照你的意愿,查看单独某台服务器的信息。(Cacti和Cricket无法显示聚合数据。)

    以上这些系统都可以被用作MySQL系统信息的收集、记录、图表化数据和报告,它们在用途方面差异较小,都具备了不同程度的兼容性。但是,它们缺乏真正意义上的兼容性,比如当某些东西出错时,它要能够有针对性地发送报警信息给某些人。它们中的一些甚至没有“错误”的概念。所以,有些人把这一点看作是此类系统的一大缺点,觉得最好还是把记录、图表化表示、报警这几项功能都独立开来。事实上,Munin特地设计了使用Nagios来作为它的报警系统。然而,对于其他几个来说,这的确是缺点。另外还有一个缺点就是安装和配置这样一个系统,使其能完全满足你需求,须投入很多时间和努力,不过,这一点也并不是这样。
    最后,RRD文件无法让你使用SQL或其他标准方法来查询它里面的数据。而且,在默认情况下,它永远会以一种恰好的粒度来存储数据,许多MySQL管理员就不愿意接受这种限制,转而选择一个关系数据库来存储这些历史数据。

     

    b、交互性工具
    交互性工具就是那些在你需要时就可以启动起来,并以视图显示的形式不断获取最新服务器状态的软件。

    innotop
    innotop是一个通过文本模式显示MySQL和InnoDB的监测工具。它有很多特点,快速的配置的,易于使用等。它吸取了MYTOP的精华这使它变得更加强大。innotop是用PERL语言写成的,这是它能更加灵活的使用在各种操作平台之上,它能详细的的监控出当前MYSQL和INNODB运行的状态,以便维护人员根据结果合理的优化MYSQL,让MYSQL更稳定更高效的运行。安装INNOTOP工具非常的简单,既然是由PERL写的,当然需要PERL环境和相关的工具包。在安装之前先要确定你的系统安装了Time::HiRes,Term::ReadKey,DBI,DBD::mysql这四个包。安装可以把包下载下来通过编译安装完成也可以用PERL模块安装方式来完成。
    mtop
    是一个显示MySQL服务器查询状态的监视器。功能包括显示完成的查询进程,显示查询优化的信息及杀死一个查询。附加功能包括服务器性能统计,配置信息和调整技巧提示。
    mytop
    mytop就是類似top的MySQL監察工具。執行mytop後,它會每隔幾秒更新一次,而且也可以針對性地監察某一個資料庫。

  • 分析工具
    分析工具可以帮你自动化那些单调乏味的工作,如监测服务器,找出还可以优化和调优的功能区域。这些工具可以作为解决性能问题的良好开端。
    a、HackMySQL 工具(这个很出名,可惜已停止更新) 

     

    1、Mysqlreport
    2、Mysqlsla

    b、Maatkit分析工具
    一系列命令行工具的集合。

  • MySQL的辅助工具
    MySQL里有几个工具是为了消除MySQL提供的功能与它自带的命令行工具之间的隔阂。
    a、MySQL Proxy
    b、Dormando的MySQL代理MySQL监控、性能分析——工具篇
分享到:
评论

相关推荐

    高性能mysql——高清版

    为了生成您所需的关于"高性能mysql——高清版"的知识点,我将依赖标题和描述部分提供的信息,以及对MySQL数据库性能优化的普遍知识来进行回答。 1. MySQL概述 MySQL是一个多用户、多线程的SQL数据库管理系统,使用...

    mysql性能分析工具sqlyog

    MySQL性能分析工具——SqlYog SqlYog是一款强大的MySQL数据库管理工具,它以其直观的图形用户界面(GUI)和高效的功能集而受到广大数据库管理员和开发者的喜爱。这款工具提供了一种简单的方式,使用户能够更有效地...

    使用动态跟踪技术SystemTap监控Oracle和mysql性能——吕海波@美创科技.zip

    3. **监控MySQL性能**:在MySQL环境中,SystemTap可以帮助我们分析查询性能、连接状态、缓冲池使用情况等。通过监控慢查询日志,可以定位到拖慢数据库性能的查询,并进行优化。 4. **SystemTap脚本编写**:编写...

    使用动态跟踪技术SystemTap监控Oracle和mysql性能——吕海波@美创科技.pdf

    动态跟踪技术,特别是SystemTap,是一种强大的工具,用于在不影响程序正常运行的情况下,实时地监控和分析系统行为。SystemTap是专为Linux设计的一种动态跟踪框架,它允许开发者编写脚本,这些脚本可以在内核级别...

    如何监控mysql,redis运行状况(CPU,内存)

    一、MySQL监控 1. **MySQL内置监控**:MySQL提供了一些内置的性能监控工具,例如`SHOW STATUS`和`SHOW VARIABLES`命令,可以查看服务器状态和配置参数。通过这些命令,你可以获取关于查询执行、连接数、内存使用等...

    R的极客理想:工具篇,完整扫描版

    《R的极客理想·工具篇》首先介绍了R的工具包、时间序列包和性能监控包,然后阐述R语言与其他编程语言的通信以及R语言作为服务器的应用,最后阐释R语言与各种数据库的通信以及R语言与Hadoop集成。附录介绍了Java、...

    款最好用的mysql——ui管理工具.pdf

    6. **mytop**:mytop是一款基于控制台的MySQL性能监控工具,适用于Unix系统,包括Mac OS X。它以类似于"top"命令的方式显示MySQL服务器的线程和性能指标,支持彩色输出和实时统计。mytop通过定期运行SHOW ...

    工欲善其事必先利其器——工具组套详解.pdf

    不过,从标题《工欲善其事必先利其器——工具组套详解.pdf》和描述《工欲善其事必先利其器——工具组套详解.pdf》中可以推测文档的内容应该是围绕着“工具组套”的详细介绍与使用说明。根据这一直观的推断,以下是对...

    mysql的学习笔记——mysql的核心概念、使用到哪些技术、以及实现。.zip

    5. **性能监控**: 工具如pt-query-digest、mysqldumpslow可以帮助分析慢查询,调整索引或SQL语句以提高性能。 6. **故障排查**: 通过错误日志、慢查询日志、SHOW STATUS和EXPLAIN命令来诊断和解决性能问题。 以上...

    mysql图形化界面打开工具

    8. 性能分析:SQLyog还包括一些性能监控和优化工具,如查询分析器和索引顾问,帮助优化数据库性能。 9. 用户权限管理:允许管理MySQL用户的权限,分配不同级别的访问权限。 10. 远程连接:支持SSH隧道,保证远程...

    mysql性能工具的使用.txt

    通过这些工具,我们可以对数据库的操作进行详细的监控与分析,进而找出可能导致性能瓶颈的原因并采取相应的优化措施。 #### 慢查询日志 慢查询日志是MySQL提供的一种非常有用的工具,用于记录执行时间超过指定阈值...

    navicat——mysql数据库可视化工具

    8. 实时监控:实时监控数据库性能,包括查询分析、线程、内存使用情况等,有助于优化数据库性能。 9. 报表生成:Navicat提供了报表生成器,可以创建自定义报表,用于数据分析和展示。 二、Navicat在MySQL管理中的...

    QT4精彩实例分析————LINUX

    QT4精彩实例分析——Linux,这是一本专为想要在Linux环境下学习QT开发的初学者量身打造的书籍。QT是一个强大的跨平台应用程序开发框架,它允许开发者编写一次代码,便能在多种操作系统上运行,包括Linux、Windows...

    SQLyog801——mysql数据库查询工具

    4. **性能分析**:该工具具有性能分析器,能够监控和分析SQL查询的执行情况,帮助用户找出性能瓶颈,优化数据库的运行效率。这对于大型、高负载的数据库系统来说尤为重要。 5. **版本控制集成**:SQLyog801还集成了...

    mysql-5.7.34——Linux版

    12. **日常维护**:定期检查MySQL的日志文件,监控资源使用情况,定期进行备份,确保数据库的安全性和稳定性。 以上就是在Linux服务器上安装MySQL 5.7.34 的详细步骤和涉及的关键知识点。每个步骤都至关重要,确保...

    初探Druid连接池之三——进入内置监控页面(连接数据源后)

    这篇博客“初探Druid连接池之三——进入内置监控页面(连接数据源后)”将引导我们深入了解如何在实际应用中启用并使用Druid的监控功能。 首先,Druid连接池的核心优势在于其对数据库连接的精细化管理,包括连接...

    mysql 分库分表查询工具-shard.zip

    MySQL 分库分表查询工具——Shard 在大型的互联网应用中,数据库的性能瓶颈往往成为系统扩展性的关键因素。为了应对高并发、大数据量的挑战,MySQL 数据库的分库分表策略被广泛采用。分库是将数据分散到多个独立的...

Global site tag (gtag.js) - Google Analytics