我真的是服务器端的新手,我一直在为我的网站管理一个专用服务器。
在高峰时间网站非常慢,为了知道为什么我一直在使用 htop 监控它。
一些真正持久(超过几个小时)的 mysql 进程使用高达 95% 的 CPU !
问题是我不知道什么查询可能是它的原因,也不知道如何监控它。我确实每一刻钟都有一个 cron,有时需要很长时间才能运行,但减速的时间并不总是与 cron 相匹配。
我听说过使用 cron 作业杀死太长的 mysql 进程的解决方案,但它不会导致数据库中的差异吗?
我真的是服务器端的新手,我一直在为我的网站管理一个专用服务器。
在高峰时间网站非常慢,为了知道为什么我一直在使用 htop 监控它。
一些真正持久(超过几个小时)的 mysql 进程使用高达 95% 的 CPU !
问题是我不知道什么查询可能是它的原因,也不知道如何监控它。我确实每一刻钟都有一个 cron,有时需要很长时间才能运行,但减速的时间并不总是与 cron 相匹配。
我听说过使用 cron 作业杀死太长的 mysql 进程的解决方案,但它不会导致数据库中的差异吗?
配置 MySQL 服务器以记录慢查询,然后查看它们。您需要了解为什么这些查询如此缓慢。
最有可能的是,这些查询可以通过添加适当的索引来加速,但这不是快速和硬性的规则——你需要了解真正发生的事情。
您可以终止长时间运行的查询,但如果您有 MyISAM 引擎,它可能会损坏您的表。在这种情况下,请认真考虑切换到 Innodb 引擎。使用像 Innodb 这样的事务引擎,当前正在运行的事务可能会被回滚,但数据不应该被破坏。