100% CPU 负载在 Ubuntu 10.04.3 LTS 64 位

dea*_*red 6 mysql ubuntu memory central-processing-unit high-load

我试图解决这个问题两天,但没有成功。服务器是 MySQL 数据库服务器。

硬件: DELL Poweredge 1950、2x Intel Xeon Quad Core E5345 @ 2.33GHz、16 Gb mem、2x 146Gb SAS(软件RAID1)

软件: Ubuntu 10.04.3 LTS、MySQL 5.1.41

问题:虽然不使用 MySQL 并且在没有数据库的情况下运行,但一切似乎都很好。一旦我安装了一个数据库,它就有理由在低内存消耗的情况下 100% 使用所有 8 个内核。所以,你可以想象平均负载很高(我第一次看到 212 的平均负载)。服务器不会变得无响应,但您可以在浏览安装的项目时看到它很慢。

附加信息:

  • 使用的数据库不超过 24MB,它是从资源较少的服务器和更大的数据库中移出的。所以它不是数据库/项目。
  • my.cnf 也不是一个原因,因为我使用了默认的一个和我在另一台服务器上的同一个发行版上使用的那个。有趣的是 mysql 不关闭任何进程并运行到 max_connections 的限制。
  • 日志很安静。那里空无一物。
  • 在我怀疑新的 Ubuntu 11.10 服务器中存在一些问题后,我切换到了这个 Ubuntu 版本。在我将内核升级到 3.0.1 后,这个工作正常一个小时(它也在使用内存)

我测试了磁盘速度,看起来没问题。

正在运行的服务器上的更多输出:

dstat -cndymlp -N total -D total 3:
Run Code Online (Sandbox Code Playgroud)

数据统计

htop 命令:

顶

有没有人遇到同样的问题?你能想到什么解决办法?

Jan*_*nen 1

有趣的部分(除了 MySQL 如此繁忙之外......)是大部分 CPU 时间似乎都花在了system,而不是user时间上。

你能用 MySQL 以外的其他程序触发同样的行为吗?例如,尝试stress使用 使其消耗 CPU stress -c 128。对我来说,产生了 128 个线程,消耗了 93% 的用户 CPU、7% 的系统 CPU(根据顶部)。无论如何,这是 Fedora 15 中的情况。如果压力使您的服务器消耗了大部分系统时间,则说明出现了严重问题。

有时,诸如过时的服务器固件之类的意外事件可能会导致各种奇怪的副作用。您升级了服务器固件吗?还有新的内核功能,例如dynamic ticks在某些条件下可能会使事情变得滞后。您可以尝试通过将nohz=off引导参数传递给 GRUB 来禁用它们。