mysql - CPU 使用率异常高

mysql - CPU 使用率异常高

我最近注意到我的 MySQL 服务器消耗了异常大量的 CPU 资源:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
2427 mysql     20   0 2198m 161m 5568 S 1600.0  4.4  5121391h /usr/sbin/mysqld --basedir=/ --datadir=/var/lib/mysql --user=mysql

我附加了两个文件 -使用我的 MySQL 配置和其他使用 mysqlreport 输出。MySQL 错误日志很干净。mytop 显示了一些记录,但它们一直在变化,很难理解这种过载是否是由于这些记录造成的。有时,进程列表甚至是空的。

我也正在连接我的服务器细节。我认为顶部显示的信息有误)。如能得到任何帮助,我将不胜感激。

答案1

不要再查看系统,而要查看 MySQL 发生了什么。即使只是粗略地浏览一下报告,也可以清楚地发现您有一些效率极低的查询。进行适当的索引和优化,我相信您的问题会消失。

答案2

我曾经看到我的 mysql 服务器中的 HDD 出现故障,然后 CPU 崩溃。

答案3

我注意到以下几件事,您可能希望更详细地了解一下:

__ Bytes _______________________________________________________________
Sent          743.25M  960.3k/s
Received        9.79M   12.6k/s

这会使您的速度达到大约 8Mbps(兆比特/秒),加上开销,将使您的速度非常接近典型的 10Mbps 连接的最大值。

__ InnoDB Buffer Pool __________________________________________________
Reads           9.81M   12.7k/s
__ InnoDB Data, Pages, Rows ____________________________________________
Rows
  Read         73.43M   94.9k/s

我不确定你到底在做什么,但这些似乎非常非常高,可能超出了低端专用服务器可以轻松处理的范围。如果你确实需要这么多的流量,你将不得不考虑更多和/或更大的硬件。我会包括一些基本的分析和基准测试,以确定你到底需要多少以及你当前的硬件可以支持多少。

答案4

运行此命令检查是否有任何查询在后台运行并消耗 CPU 资源:

SHOW FULL PROCESSLIST

然后使用 Identifier 终止恶意进程

终止 ID

相关内容