gpt4 book ai didi

mysqlcheck 使用 100% cpu 导致服务器问题,服务器没有响应

转载 作者:搜寻专家 更新时间:2023-10-30 20:57:59 24 4
gpt4 key购买 nike

我有一个 mysql 服务器 (5.0.58),它托管着许多数据库 (~30)。几年前,我开始遇到一些数据库的性能问题,我最终通过执行夜间 cron 作业来使用以下命令检查/优化数据库来解决这些问题:

mysqlcheck --check --auto-repair --analyze --optimize --silent --all-databases

此命令通常会在大约 20 分钟内执行。直到上个月,这就像一个魅力。现在执行此命令时,机器上的 CPU 会出现峰值并且机器几乎没有响应。我唯一能做的就是重新启动 mysqld 服务(等待 10-15 分钟后才登录)。出现这种情况时看mysql进程列表,好像有些表也可能被锁了,不过我还在研究中。

有人知道为什么这个命令会锁定服务器吗?我打算尝试将命令限制为特定数据库(而不是 --all-databases)以查看是否有帮助。

最佳答案

为什么 mysqlcheck 使计算机停滞不前?

也许您用尽了所有可用的 RAM,而 mysql 开始使用虚拟交换空间,这需要大量的磁盘读/写并耗尽所有 CPU。通过添加 RAM 或一次对更少的数据库执行 mysqlcheck 来测试这个理论。

也许您已经填满了硬盘空间,并且进程必须等待可用的硬盘空间,因为所有空间都已被保留(即使驱动器没有完全满)。通过释放硬盘空间来检验这一理论。

也许您的 CPU 正在抖动,这意味着 CPU 所做的大部分工作是在任务之间切换而不是执行任务。尝试按顺序对每个单独的数据库执行命令。

解决方法:

尝试以较低的优先级运行 mysqlcheck,这样您仍然可以登录并且不会阻止其他进程运行。这取决于您使用的操作系统。

关于mysqlcheck 使用 100% cpu 导致服务器问题,服务器没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com