mysqlreport工具(二) (2012-02-27 17:20:03)转载▼
Questions Report: Lines 9 - 26
第二个主要报告区域,Questions。说他第二重要是因为这部分主要说明MySQL都在忙着干什么,还有MySQL在做事时有多忙。“操作”包含SQL语句和MySQL协议通信。最普遍关心的问题是MySQL运行过程中每秒运行多少SQL语句,但是这种考虑问题方法是过于武断地的。这部分报告考虑的更加全面。
Total: Line 10
第一行表示了MySQL回应了所有问题的总数和更新时间内的平均回应率。这一比率通常会让人得出结论“我的MySQL服务器平均每秒钟100次处理数”。但是,真正的问题是,在这100个处理数中,有多少是真正完成的呢?后面几行回答了这一问题。
(这里需要说明的是,“Questions(操作)”是被响应的,而“(Queries查询)”是被执行的。mysqlreport可以分辨出“操作”和查询,特别是在“操作数报告”中。“操作”是每个和各种对MySQL服务器的请求,这包含了SQL查询和MySQL特定的命令和协议通信,查询是仅包含SQL查询:SELECT, UPDATE等)
Distribution of Total Queries (DTQ): Lines 11 - 15
所有的“操作”可分为5类:数据操作语句(DMS)、查询缓存命中率(QC Hits)、COM_QUIT、其他通信命令和未知。这5个分类是从11至15行动态显示的。mysqlreport按照他们的总次数降序排列。这个子报告能够明显的表示出MySQL在忙着干什么。理想情况下,MySQL应该忙于DMS 或者QC Hits,因为这些行为时真正完成某些事情的。COM_QUIT,Com_和Unknown类别是必要的,但是处于次要地位。
在进一步解释每一类之前,需要说明的是这部分子报告第三列表明该列值占总“操作”请求数的百分比,“操作”部分的其他子报告也是如此。在例子中,DMS数占总操作数的82.84%是正常示数。
Data manipulation statements(DMS)(Line 11)包括SELECT,INSERT,REPLACE,UPDATE和DELETE。基本上,DMS是MySQL数据库干的最有用的,因此,DMS应该是MySQL做的最多的。DMS子报告会在行17-22之间详细显示。
QC Hits(Line 12)是MySQL查询执行过程中,通过查询缓存补偿,而不是实际执行的操作数。具有一个较高的QC Hits数是令人期待的,因为QC的返回是非常快的。但是,完成有效地QC缓存是非常困难的。这在后面的Query Cache Report中的Insrt:Prune和Hit:Insert部分将深入解释。
在例子中,QC Hits在所有的“问题”中占16.91%,这一指标已是相当不错的。但是,不要被这个误导,“Query Cache Report”描述了更复杂的事情。尽管QC Hits貌似很不错,但是服务器的查询缓存并不像想象中那么好。
COM_QUIT (Line 13)是个可以忽略的无关紧要的参数,它包含到报告中为了保证完整性。具体内容可参考“COM_QUIT and Questions”的描述文章(地址:http://hackmysql.com/com_quit)
Com_ (Line 14)表示MySQL处理的各种命令,通常都是协议相关的。理想情况下,在这个指标应当比较低,因为当比较高时,说明MySQL忙而无用。该分类参数过高,则表示一些怪异的问题,后面在Com_将详细讨论。
Unknown (Line 15)是一个推测的目录。理想情况下,前四部分的总和应该是等于全部“操作”数量,但通常不相等。这是因为存在一些MySQL的操作,增加了操作计数器,但是并没有表现在单独的指标上。
这一行会动态显示为"+Unknown"或者"-Unknown"。"+Unknown"表示存在更多的操作数,比mysqlreport计算的多;"-Unknown"表示mysqlreport计算的数比所有的统计数少。
This category can vary greatly. On some servers it is near the top, but on most it is at the very bottom. It is better for it to be at the very bottom. Eventually, the nature of these unknowns will be discovered and mysqlreport will account for them correctly.
Slow: Line 16
第16行是非常重要的:他指示了MySQL执行的慢查询数目有多少。影响“Slow”指标的系统参数long_query_time,这一参数默认值为10s。很多人认为10s是在数据库时间中时一个恒定值,long_query_time最好设置为1或者毫秒级单位(毫秒设置在MySQL的新版本中支持)
long_query_time,这一参数值只有慢查询之后才会显现出来。在mysqlreport v3.5以后,该参数支持:秒、毫秒、微妙。在某些情况下,该参数由于显示宽度8个字母的限制。例如,long_query_time的参数值'999.999 ms'截断成'999.999 ','10.000100 s'截断成'10.0001 '。
理想情况下,慢查询的统计应该为0,但是通常也会有一些慢查询的存在。一般来说,慢查询的比率(第三列)占整个操作数的0.05或更低。当有很多慢查询(第一列),这是的比率值就会显示出问题。这一行还增加了一列:DMS操作数百分比。对于慢查询,0是最好的,这一列在DMS子报告中更加有用。
最后一列,Log,表示慢查询日志功能开启还是关闭(通过设置log_slow_queries参数)。慢查询日志通常是打开的。
DMS: Lines 17 - 22
DMS子报告,和DTQ子报告一样,第一列是按照降序排列的。该部分从17到22,共6行,表示了前文所提到数据操作数(SELECT、INSERT等)。第一行显示的和DTQ报告中(第11行)的显示一样的。
这一子报告显示MySQL数据库是哪一种类的数据库:是查询负荷高、还是插入负荷高、还是其他的。MySQL服务器都是倾向于查询负荷高(SELECT heavy)。了解是哪种类型的MySQL数据库有利于理解其他的报告值。例如,一个插入负荷高的服务器,其写入率会接近为1.0,这种类型的数据库锁表报告值也会偏高,这类数据合适与采用InnoDB类型表;一个查询负荷高的数据库,就会表现出读取率为1和一个较低的表锁值,这种类型的数据库需要采用查询缓存,适合于采用MyISAM表。
(原文是“ A SELECT heavy server had better have a read ratio of zero and a very low table lock values.”,我觉得是笔误吧)
在这个例子中,服务器是一个查询符合高的数据库。很明显,这个数据库面向查询事务。知道数据库类型就有利于数据库参数的优化。
Com_: Lines 23 - (26)
Com_子报告和其他子报告一样分类排序。这部分子报告的内容不同于服务器到服务器命令,因为每一行指示的Com_指标都是表现的MySQL协议的命令,你可以参考MySQL的帮助文档理解这部分概念(网址为:http://forge.mysql.com/wiki/MySQL_Internals)。大部分的条目名称都是很直观的,比如Com_change_db。
这部分指标当DTQ子报告中的Com_最高时才起作用,此时表明MySQL正忙于“程序事务”而不是SQL查询事务。举个例子,一台服务器的Com_rollback指标很高。rollback发生在事务处理失败的时候。服务器的每一次事务处理都失败,很显然,服务器是有问题的。在没有mysqlreport的情况下,很明显是不可能分辨出服务器的这些问题的。
大部分服务器,Com_子报告显示没有异常,但是时常地检查该部分报告是很有必要的。
分享到:
相关推荐
MySQLreport 是一个基于命令行的开源工具,用于监控 MySQL 数据库的状态和性能。它通过收集并格式化 MySQL 的系统变量和状态信息,提供了一个简洁的报告,帮助管理员了解数据库的运行情况。虽然不支持实时刷新,但...
- 下载mysqlreport工具。 - 安装Perl环境(如果尚未安装)。 - 将mysqlreport脚本放置于适当位置。 2. **执行命令**: - 使用命令`mysqlreport`即可生成报告。 - 可以添加参数调整输出格式或指定输出到文件等...
MySQLreport是一款实用的工具,它能生成详细的MySQL服务器性能报告,包括各种关键指标,如查询效率、表状态、缓存利用率等。这个源码安装包包含三个主要组件:DBI(Database Interface)、DBD(Database Driver for ...
MySQLreport 是一个强大的工具,主要用于收集和报告 MySQL 数据库服务器的关键性能指标。这个工具的版本是3.5,被封装在“mysqlreport-3.5.rar”压缩文件中,其后缀名错误地标记为“rar”,但实际上应该是“zip”。...
MySQLreport 是一个强大的工具,主要用于生成关于 MySQL 数据库服务器的详细报告。这个工具的主要目标是提供一种简单且直观的方式来查看数据库的性能指标、状态和配置信息。MySQLreport v3.5 版本提供了更完善的报告...
mysqlreport是由hackmysql.com 的站长所撰写的 Perl Scritps,旨在协助 MySQL DBA 搜集与分析 MySQL 的运作状况。用着感觉不错。 官方网站: http://hackmysql.com/ 软件下载: http://hackmysql.com/mysqlreport
MySQLreport 是一个基于命令行的开源工具,用于监控 MySQL 数据库的状态和性能。它通过收集和格式化 MySQL 的系统变量和状态信息,提供了一个简洁的报告,帮助管理员了解数据库的健康状况、性能瓶颈以及资源使用情况...
MySQLreport是一款强大的命令行工具,专门用于收集和报告MySQL服务器的各种状态信息,便于数据库管理员进行性能分析和故障排查。在“mysqlreport-3.5.tar.gz”这个压缩包中,包含的是MySQLreport的3.5版本。下面我们...
标题中的“mysqlreport显示Com_中change_db占用比例高的问题的解决方法”指的是在使用mysqlreport工具分析MySQL服务器性能时,发现`Com_change_db`操作的频率异常高,这可能是导致服务器频繁出现阻塞和重启的原因之...
MySQLreport 是一个强大的工具,它能提供 MySQL 服务器的详细状态报告,包括各种性能指标、配置参数以及系统资源使用情况。对于数据库管理员来说,理解并分析这些报告是优化数据库性能的关键步骤。本篇文章将深入...
2. **MysqlReport**:这是一个Perl脚本,提供直观的监控数据。它可以作为Cacti的数据来源,但其局限在于只能进行实时监控,不具备图表展示和历史数据记录功能。 3. **phpMyAdmin**:虽然主要作为一个Web模式的MySQL...
3. **其他辅助工具**:`mysqlreport`生成易于理解的数据库报告,`profiling`分析查询执行步骤,还有各种第三方监控工具。 **调优策略** 1. **硬件、网络和软件优化**:升级硬件(如CPU、内存、磁盘和网络),使用...
- **其他工具**:如mysqlreport等,提供更详细的性能指标分析。 - **微秒级慢查询分析**: - **microslow补丁**:支持更精细的时间粒度,可精确到微秒级别。 - **主要配置项**:long_query_time, log_slow_filter...
另外,文档提到了一些关键的监控和诊断命令如sar、vmstat、df,以及故障排除工具如ip_conntrack、mysqladmin、mysqlreport等,这些都是运维工程师在日常工作中不可或缺的工具。对于文档中提到的故障案例,如“文件...
- `mysqlreport2.html` 和 `mysqlreport2.jasper` 代表另一个基于MySQL数据的报表。 - `report1.html`, `report1.jasper`, `kanshu4.jasper`, `kanshu2.jasper`, `subreport3.jasper` 分别代表不同的报表和可能的子...
5. **工具辅助**:使用`mysqlreport`、`profiling`等工具,生成易于理解的报告和查询剖析。 **如何调优** 调优涵盖多个层面: 1. **硬件、网络、软件**:升级硬件如CPU、内存,优化网络环境,选择合适的操作系统...
缓存技术是IT领域中优化系统性能的关键技术之一,...为了监控和调整缓存效果,可以使用各种监控工具,如MySQL的status查询、mysqlreport脚本、MySQL Administrator或第三方工具如innotop,以确保缓存性能达到最优状态。
- 对于数据库缓存,可以通过MySQL的`show status`命令、mysqlreport脚本、MySQL Administrator工具或者专门的innotop工具来监控和分析缓存的使用情况,进行性能调优。 总结来说,缓存技术在现代软件系统中扮演着至...
- **监控与备份**: 使用工具如 mysqlreport 分析 MySQL 性能;定期备份数据库以防止数据丢失。 综上所述,LAMP 源码包提供的组件构成了一套完整的Web开发环境,从服务器到数据库再到编程语言,为开发者提供了强大...
也可以用一些现成的监控工具进行查询,目前用的比较多的innotop、mysqlreport、mtop、mytop,还有淘宝perl语言研发的orzdba。 就监控的指标而言,有系统层面的,数据库层面的。 1、系统层面包括系统的load、cpu、...