在实时生产服务器中诊断和分析 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 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

EMR-StarRocks 与 Flink 在汇量实时写入场景的最佳实践

实时即未来,车联网项目之远程诊断实时故障分析

实时即未来,车联网项目之远程诊断实时故障分析

实时即未来,车联网项目之远程诊断实时故障分析

双11实时物流订单最佳实践

java中,生产环境服务器变慢,如何诊断处理?