【发布时间】:2010-11-19 21:56:31
【问题描述】:
最近我的服务器 CPU 一直很高。
CPU 负载平均为 13.91(1 分钟)11.72(5 分钟)8.01(15 分钟),我的网站流量仅略有增加。
运行 top 命令后,我看到 MySQL 正在使用 160% 的 CPU!
最近我一直在优化表,并切换到持久连接。这会导致 MySQL 使用大量 CPU 吗?
【问题讨论】:
-
持久连接几乎总是不适合使用。
-
我现在就把它们取下来看看有什么不同,因为我从来不记得一个月前 CPU 超过 2!
-
服务器往往有多个核心。 CPU 使用率百分比是相对于一个核心计算的,换句话说,一个进程完全用完两个核心将有 200% 的 CPU 使用率。在这里,MySQL 使用了 100% 的一个内核和 60% 的另一个内核。这并不意味着所有 CPU 都用完了,很可能他至少还有两个空闲 CPU。
-
高 CPU 几乎总是意味着查询效率低下。这通常通过更好的索引(尤其是“复合”)和/或重新制定查询来解决。