在实时生产服务器中诊断和分析 MySQL 的最佳方法是啥?
Posted
技术标签:
【中文标题】在实时生产服务器中诊断和分析 MySQL 的最佳方法是啥?【英文标题】:What is the best way to diagnose and profile MySQL in live production server?在实时生产服务器中诊断和分析 MySQL 的最佳方法是什么? 【发布时间】:2009-03-06 14:16:38 【问题描述】:您推荐哪些工具/方法来诊断和分析实时生产服务器中的 mysql?
我的目标是测试扩展系统的替代方法,看看它们对读/写时间、内存、CPU 负载、磁盘访问等的影响,并找出瓶颈。
【问题讨论】:
【参考方案1】:首先,您应该设置某种监控,例如:
MySQL Enterprise Monitor MONyog Cacti(免费) Munin(免费) MySQL Activity Report(免费)其他可能有用的工具:mytopinnotopmtopmaatkit
此外,您应该在 my.cnf 中启用日志记录 slow-queries。
在您开始调整/更改参数之前,您应该创建某种 测试计划并比较之前/之后的结果以查看您的更改 有没有道理。
【讨论】:
【参考方案2】:这是我已经做了很多工作的事情。
MonYog - MySQL 监控服务。我们在生产中使用它。它不是免费的,但有很多功能,包括警报和历史数据。
MySQL Enterprise Monitor - 可用于 MySQL 企业(即不便宜)
自己动手!
关于滚动您自己的选项:
我们实际上开发了一个非常酷的监控应用程序,它使用RRD tool(由常见的 MRTG 使用)以及 MySQL 统计信息和系统统计信息(如 iostat)的组合。这不仅是一个很好的练习,而且还为我们提供了极大的灵活性,可以通过单个界面准确监控我们想要的内容。
这里是Brief Description 的一些构建您自己的统计数据的方法。
尽管我们也使用 MonYog,但我们推出自己的产品的一大动机是跟踪磁盘统计信息。磁盘 i/o 可能是一个主要瓶颈,标准 MySQL 监控系统没有 i/o 监控。我们使用iostat,它是systat 包的一部分。
我们有一个界面,可以在磁盘 i/o 统计数据旁边显示 MySQL 统计数据图表,让我们能够真正全面了解 MySQL 负载如何影响磁盘 i/o。
在此之前,我们真的不知道为什么我们的生产应用程序会陷入困境。我们发现磁盘 i/o 是一个主要问题,当我们运行复杂查询时,MySQL 会在磁盘上创建大量临时表。我们能够优化查询并显着提高磁盘性能。
【讨论】:
【参考方案3】:Jet Profiler 肯定的
【讨论】:
【参考方案4】:同时添加到列表中:RHQ 4(开源)--http://rhq-project.org/
【讨论】:
【参考方案5】:Vote http://tinyurl.com/vote-gif 加入列表:
Maatkit 用于 mysql 的 dbForge 工作室 Jet Profiler【讨论】:
以上是关于在实时生产服务器中诊断和分析 MySQL 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章