Ubuntu 10.04.2 LTS服务器 – 在日志文件中没有任何原因的指示间歇挂起

快速描述:

我最近开始尝试在我们的数据中心build立/pipe理Linux(Ubuntu 10.04.2 LTS)服务器(所有其他服务器都是Windows的)。 服务器周期性挂起,变得没有反应,我很遗憾find任何日志中的任何东西,指出一个具体的原因。 有时会有几个小时,有时几天(最长14天)。 挂起后显示器没有任何显示。 为了解决这个问题,我们尝试了禁用APIC,更多的是出于“受教育的绝望”而不是其他任何事情。 不幸的是,我们在一些我们可以做的故障排除方面有限,因为我们有一个单独的客户网站(我们设置它的原因),所以任何涉及显着的停机时间是一个问题。

由于这是我们第一次尝试build立一个linux系统,所以我们使用的是“配备齐全”的桌面级机器,而不是我所说的“服务器级”硬件。 这是一个独立的盒子,而不是VPS。 我们正在使用硬件,而不是软件,RAIDarrays,并在盒子里有大量的内存。

警告/背景:

  • 一般来说,我对Linux比较陌生。
  • 与pipe理服务器相比,我花更多时间编写代码。 我很喜欢在盒子上工作,但我并不是一个真正的系统pipe理员。
  • 我对命令行感到满意,但对OS X(BSD)有更多的经验。
  • 我不确定所有可用的工具/信息/日志,尽pipe我试图彻底检查我所知道的东西。
  • 我没有物理configuration硬件,所以我不确定所有的规格,但我可以得到任何信息,我需要排除故障。
  • 我可能会跳过非常基本的步骤,或者不知道明显的地方寻找信息。

更多一点细节:

  • 真实内存:8GB
  • Ubuntu 10.04.2 LTS
  • 硬件RAID 10
  • 使用Webmin版本1.550pipe理站点
  • 服务器位于远程数据中心。 手动故障排除很困难。

在这一点上,我们尝试了两个Linux设置。 第一个是在这个硬件configuration相同,但没有实际的硬件重用。 这个尝试是使用CentOS,我们试图build立CPanel。 我们因为同样的问题而报废了这个安装(定期崩溃/挂起)。

第二次尝试(这一次)显示了相同的行为。 我唯一能看到的共同点就是硬件configuration(尽pipeCentOS和Ubuntu可能比我想象的要多)。

这个盒子可以运行几个小时,几天,甚至几个星期,然后完全停止响应。 我检查了所有我知道要检查的日志(主要是消息,syslog和kern.log),但是我没有看到任何对我来说似乎是错误的东西。 我确实看到了我不明白的可能或不可能成为问题的线条,例如:

rsyslogd: [origin software="rsyslogd" swVersion="4.2.0" x-pid="814" x-info="http://www.rsyslog.com"] rsyslogd was HUPed, type 'lightweight'. 

我们的大多数系统日志条目似乎是运行webmin相关cron作业的日志。 我的直觉告诉我,在我们的configuration中可能有一些组件不喜欢或者需要驱动程序更新(例如raid卡),但我不确定如何做更多来追踪或确定可能是什么。 猜测和检查是昂贵的。

我的另一个想法是,一个或多个正在运行的cron作业正在绊倒某些东西,但它似乎不是可以根据需求重现的,而且我又在如何testing这个理论任何进一步。 每次服务器出现故障时,相同的cron作业似乎都不会运行。

这是我们上次挂起之前的日志的一部分:

 Aug 8 11:00:01 linhost01 CRON[10771]: (www-data) CMD ([ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache2/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null) Aug 8 11:00:01 linhost01 CRON[10772]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:01:01 linhost01 CRON[10799]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) Aug 8 11:05:01 linhost01 CRON[10898]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:06:01 linhost01 CRON[10924]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) Aug 8 11:09:01 linhost01 CRON[11007]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm) Aug 8 11:10:01 linhost01 CRON[11023]: (www-data) CMD ([ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache2/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null) Aug 8 11:10:01 linhost01 CRON[11024]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:11:01 linhost01 CRON[11063]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) Aug 8 11:15:01 linhost01 CRON[11149]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:16:01 linhost01 CRON[11176]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) Aug 8 11:17:01 linhost01 CRON[11243]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Aug 8 11:20:01 linhost01 CRON[11279]: (www-data) CMD ([ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache2/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null) Aug 8 11:20:01 linhost01 CRON[11280]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:21:01 linhost01 CRON[11307]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) Aug 8 11:25:01 linhost01 CRON[11392]: (root) CMD (/etc/webmin/status/monitor.pl) Aug 8 11:26:01 linhost01 CRON[11432]: (root) CMD (/etc/webmin/virtual-server/collectinfo.pl) [SERVER DOWN AFTER THIS POINT] 

如果任何人能帮助摆脱任何光线,甚至给我任何东西,我可以在这里发布,可能是有益的,我会非常感激。 我全部都是为了边干边练边学,但是我已经开始在这条线上结束了。

很高兴发布任何特定的日志信息或信息,可能有助于提供任何build议。

为了完整起见,我想我只是把这个包起来。 经过一年多的这种行为,服务器终于死亡。 只有在尝试(和失败)重buildRAID时,我们发现不是一个,而是两个硬盘坏了。

这个服务器的问题的确切原因仍然是不知道,但(我对Linux仍然有点了解),我怀疑这两个驱动器有一段时间的问题,试图使用坏的​​驱动器间歇性地导致服务器崩溃/ 重启。

我们的最终解决scheme是使用几乎完全相同的configuration,但使用全新的硬件来重新构build服务器。 我们所做的唯一重要的configuration更改是使用ext4而不是xfs作为文件系统。 这个盒子已经连续好几个月没有问题了。

我只是回答这个问题,因为对于我们来说,驱动器故障似乎是原因,更换所有硬件是解决问题的最佳解决scheme。 这就是说,我不知道这个答案对大多数人来说太有帮助了。

我会张贴这个评论,但我缺乏声誉。

也就是说,对日志进行随意审查的唯一原因是新风格。 如果是我,我会禁用新风格。 这些说明应该可以帮到你。

您也可以find以下severfaultpost相关的,也许是有帮助的,如果没有其他的原因,而不是暴露你的一些工具来帮助排除故障。

如何在重新启动后诊断Ubuntu系统冻结

(如何)我可以使用系统日志来诊断神秘的崩溃?

Ubuntu 10.10 Maverick Server使系统locking随机间隔(i7 930; 12GB RAM)

祝你好运!

目前还不清楚究竟是什么意思。 我知道你提到它的遥控器是如此的困难。 但是,像这样的崩溃是至关重要的,要知道机器是完全冻结的。 当它崩溃时,控制台仍然工作(通过工作,我的意思是你可以按回车,它是否显示密码提示,你可以login)? 对于数据中心中的一台机器来说,将某种控制台放入其中是个不错的主意。 这是便宜的select:

http://international.opengear.com/SD4001_Single_Port_Advanced_Device_Server_p/sd4001.htm

这需要一些设置来configuration串行控制台部分。 一个更简单但更昂贵的解决scheme将是KVM。 一旦确定在停机期间物理控制台是否被冻结,它应该有助于确定下一步的操作。 如果物理控制台也被冻结,那么很可能是硬件问题。 如果这个盒子还没有ECC内存,你应该看看testing或者更换它。 如果问题只是RAID卡等子系统的驱动程序错误,则控制台不太可能locking。 如果控制台在这些停机期间确实响应,并且您可以login,则应尝试运行一些命令。 如果问题相当频繁,您可能只想设置一个cron作业,捕获这些每分钟的输出:

lsof -n#将列出系统上所有打开的FD,希望显示是否有东西正在使用所有的资源

netstat -an; netstat -s#任何networking引起的问题应该显示在这里像是用尽缓冲区

ps -eaf#一般过程堆积?

date戳输出,然后尝试find崩溃前的最后一个。 如果这是一个子系统的问题,这将从这里的输出显而易见。