我尝试修复此问题两天了,但没有成功。该服务器是 MySQL 数据库服务器。
硬件: DELL Poweredge 1950,2 个英特尔至强四核 E5345 @ 2.33GHz,16 Gb 内存,2 个 146Gb SAS(软件 RAID1)
软件:Ubuntu 10.04.3 LTS,MySQL 5.1.41
问题:虽然没有使用 MySQL 并且没有数据库,但一切似乎都很好。一旦我安装数据库,它就有理由带来8 个核心全部 100% 运行,内存消耗低。因此,您可以想象平均负载会升高(我第一次看到平均负载为 212)。服务器不会变得无响应,但您可以看到在浏览已安装的项目时它很慢。
附加信息:
- 使用的数据库不超过 24MB,并且是从资源较少且数据库较大的服务器移来的。因此它不是数据库/项目。
my.cnf
也不是原因,因为我使用了默认的和在另一台服务器上的同一分布上使用的。有趣的是,mysql 没有关闭任何进程并且运行到 max_connections 的限制。- 木头很安静。什么都没有。
- 我怀疑新版 Ubuntu 11.10 服务器存在一些问题,因此我改用了这个 Ubuntu 版本。在我将内核升级到 3.0.1 后,这个版本运行了一个小时(它也占用了内存)
我测试了磁盘速度并且看起来还不错。
正在运行的服务器上的更多输出:
dstat -cndymlp -N total -D total 3:
htop
命令:
有人遇到过同样的问题吗?你能想到什么解决办法吗?
答案1
有趣的是(除了 MySQL 非常繁忙之外……)大部分 CPU 时间似乎都花在了system
,而不是user
时间上。
你能用 MySQL 以外的其他程序触发这种行为吗?例如,尝试stress
使用 让它消耗 CPU stress -c 128
。对我来说,这产生了 128 个线程,消耗了 93% 的用户 CPU 和 7% 的系统 CPU(根据 top)。无论如何,这是在 Fedora 15 中。如果即使是压力也会让你的服务器消耗大部分系统时间,那就大错特错了。
有时,诸如过时的服务器固件之类的意外情况可能会导致各种奇怪的副作用。您是否升级过服务器固件?此外,较新的内核功能(例如,dynamic ticks
在某些情况下会导致延迟)也会导致延迟。您可以尝试通过将其nohz=off
作为启动参数传递给 GRUB 来禁用这些功能。
答案2
尝试终止进程mysql
以查看会发生什么。您需要确定是什么占用了如此多的 CPU。
如果CPU利用率下降,那么请提供有关您的MySQL配置和业务性质的更多信息。
抱歉,没有仔细阅读,我太关注图片了。
尝试使用新版本或重新安装 MySQL 怎么样?十年的系统管理员经验告诉我这似乎是不可能的。