Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438113
  • 博文数量: 85
  • 博客积分: 3580
  • 博客等级: 中校
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 14:09
文章分类

全部博文(85)

文章存档

2011年(7)

2010年(78)

我的朋友

分类:

2010-06-23 13:18:27

发现问题:

刚装好的centOS用于部署一个web application。运行一段时间后发现,系统非常卡,ssh终端连接速度慢,vi打开文件卡住,就连类似于ls这样的命令都要很长的一段时间,整台服务器几乎无法操作。

 

查找原因:

top查看发现,系统的load average非常高,都到了几百了,但是cpu占用率很低,task中也只有1-2个在running。内存等占用都很小。于是重启,之后load average等参数变正常,机器不卡了。但是过短时间后,机器又开始慢了,观察发现,load average基本上每隔一点时间就加一,也就是说每隔一段时间就有一个任务被运行。

ps查看发现,在进程中

/The mcelog.cron job in /etc/cron.hourly fails. It is apparently hanging in the test `cat /sys/hypervisor/uuid` != "00000000-0000-0000-0000-000000000000"

有好多这样的错误挂在进程中。而且都是D的状态。

总之就是关于cron.hourly中mcelog.cron 无法读取/sys/hypervisor/uuid这样类型的错误。

 

Google之

找不到很好的有效的解决方案,仅仅是一些不痛不痒的修改,比如说,有人认为这种情况是因为系统在执行某项任务的时候而导致IO负载过高,没办法读取,结局的方法就是关闭诸如为whereis建立索引的背景程序。关掉了etc/updatedb.conf(即打开updatedb.conf在首行加上DAILY_UPDATE=no)之后问题依旧....

 

崩溃中....

服务器虽然运行正常,load average也不是猛增,但是这样下去老定期重启也不是办法啊~ 于是在网上找了N多方法,依然不行....

 

柳暗花明

一次在redhat的官网中偶然发现了类似的问题,于是... 问题被轻而易举的解决了!!!

 

问题分析

原来这是linux一个已知的小bug。在xend服务关闭的时候,读取/sys/hypervisor/uuid 可能会发生错误,临时的解决方案是启动xend服务(我在网上居然有一个人说关闭这个服务,但是他的问题和我的问题很相似,我不知道是不是还有可能是其他原因...),linux的内核开发者们已经提交了这个bug,具体可参考    这两个bug提交记录~

 

结论

相信google,但是也不要忽略了其他途径,比如说man,比如说国外的linux开发社区。

学好英语是多么的重要。

 

其他

这哥们也遇到了一样的问题~ 哈哈

阅读(21220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~