linux – 你可以通过查询的“源”来分解相对MySQL的负载吗?

linux – 你可以通过查询的“源”来分解相对MySQL的负载吗?,第1张

概述我正在努力提高服务器性能,很明显, MySQL是问题的主要原因.但是,对它进行故障排除非常困难.我使用慢查询日志来定位特定类型的查询,但真正的问题是MySQL由Java进程, PHP进程和cron作业(通常也是 PHP进程使用,但通过命令行而不是Apache运行) ) 通常当服务器变慢时,我会运行一些命令,比如“ps”或“top”来试图找到罪魁祸首,但即使我知道MySQL是罪魁祸首,我也不知道这三 我正在努力提高服务器性能,很明显,MySQL是问题的主要原因.但是,对它进行故障排除非常困难.我使用慢查询日志来定位特定类型的查询,但真正的问题是MysqL由Java进程,PHP进程和cron作业(通常也是 PHP进程使用,但通过命令行而不是Apache运行) )

通常当服务器变慢时,我会运行一些命令,比如“ps”或“top”来试图找到罪魁祸首,但即使我知道MysqL是罪魁祸首,我也不知道这三个“领域”中的哪一个我提到的可能实际上导致减速.换句话说,我喜欢以某种方式将其分解并看到,例如,当时对MysqL的80%的要求是由于来自PHP的查询,而只有20%来自Java.由于我从两个“领域”触发了自动化任务和周期性事件,因此很难仅通过反复试验来隔离它们的效果.

一切都驻留在一台服务器上,因此所有MySQL查询都来自localhost.我是否也可以“标记”查询,为它们添加注释,或以其他方式添加某种元数据,以便我可以稍后分析这些标记以获得相对负载

我怀疑有一种方法可以获得非常类似的信息,但是如果有人可以帮助提供一种方法来进一步细分MysqL加载,以帮助识别这些查询的来源(进程ID也可能有效),它将极大地帮助.谢谢!

解决方法 我建议使用 MySQL Proxy.使用MysqL Proxy,您可以拦截并记录进入服务器的每个查询.

一种更简单的方法是运行MysqLbinlog来分析MysqL生成的二进制日志文件(参见man MysqLbinlog).

无论如何,如果你还没有这样做,那么运行MysqLtuner以查看是否存在任何明显的问题或瓶颈(例如,执行没有索引的JOIN的异常数量的查询)将是一个好主意.

总结

以上是内存溢出为你收集整理的linux – 你可以通过查询的“源”来分解相对MySQL的负载吗?全部内容,希望文章能够帮你解决linux – 你可以通过查询的“源”来分解相对MySQL的负载吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1035313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存