【问题标题】:High MySQL CPU usage but no heavy query高 MySQL CPU 使用率但没有繁重的查询
【发布时间】:2011-06-22 14:19:29
【问题描述】:

当我在我的 Linux 上运行“top”命令时,它显示 MySQL 占用了 400%-500% 的 CPU 使用率。但是当我运行“watch mysqladmin pr”命令查看 MySQL 正在运行的查询列表时,它只显示 2、3 个查询,而且也只需要 2、3 秒。 “top”命令显示 MySQL 不断波动的 CPU 使用率,如 130%、200%、340%、230%、400%、440%、635%、335% 等。但是“watch mysqladmin pr”命令没有显示占用 CPU 使用率的查询。如何检查 MySQL 为什么使用这么多 CPU?

谢谢

【问题讨论】:

  • 不是编程问题,试试serverfault.comdba.stackexchange.com。除此之外,它是否正在等待磁盘 IO?
  • 好吧,也许模组可以把它移到适当的论坛!?关于 IO 我如何检查它或者有没有办法优化它我的意思是我需要增加某种缓冲区大小?

标签: mysql linux cpu-usage


【解决方案1】:

会不会是一个巨大的交易被回滚?这将显示 100% cpu 但没有活动查询。重启 mysql 将无济于事,因为重启后回滚仍在继续source:关于大事务的第二部分)

如果您运行 show engine innodb status(假设您正在运行 innodb),则 TRANSACTION 标题下会显示信息 - 类似于:

---TRANSACTION 7AB09, ACTIVE 3601 sec rollback ROLLING BACK 48157 lock struct(s), heap size 5585336, 2856641 row lock(s), undo log entries 4921485 MySQL thread id 53, OS thread handle 0x7f3d503ab700, query id 4937822 localhost 127.0.0.1 user

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 2020-10-08
    • 2023-04-03
    • 2018-09-14
    • 1970-01-01
    • 2012-02-07
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多