我有一个32GB的非ECC内存专用服务器与CentOS。
一天一次,它在/var/log/kern.log,/ var / log / messages,mysql,apache中随机崩溃,没有任何错误。
CPU / RAM / IO不是特别高也不低。
是否有任何这样的错误loggingCentOS的某个地方,可以确定地显示“现在是时候支付ECC”?
你想logging什么? CentOS无法知道非ECC内存的内容已经变坏,因为它不可知; 只能知道记忆的内容是没有意义的,而且恐惧是以它发现的任何自相矛盾为理由的。 这种不一致可能是由RAM损坏引起的,但也可能是由内核错误或其他原因引起的。
明确地知道内存已经变得腐败的唯一方法是使用明确包括支持检查这种腐败的内存; ECC记忆。
编辑 :这是一个完全不同的问题,你问。 但是我的策略是:在硬件上运行memtest86+ ,查看是否有任何易于发现的可重复错误,并在服务器上启用远程syslog (当内核发生混乱时,它经常停止写入FS,但可以仍然挤出一个日志信息从网卡),看看下一个恐慌logging什么。
ECC内存有两个好处:
考虑到这一点,确定你是否从没有ECC内存的ECC内存中受益实际上是非常困难的。 根据定义,你不能logging失败检测错误,你当然没有数据是否可能发生的错误是内存控制器搞乱的结果。
这就是说,如果你运行memtest,你会确定一些事情。 如果你没有发现任何错误,你需要使用ECC RAM,否则问题就出在别的东西上(所以如果你把所有的硬件和软件作为原因,你已经certificate了对ECC RAM的需要)。 如果发现一致的错误,RAM很可能是坏的,只需要更换即可。 如果发现不一致的错误,CPU可能不好,或者您可能需要ECC RAM。 如果发现memtest86崩溃,则表示最低位的DIMM不良,或CPU不良,或者需要ECC RAM。
无论如何,这显然是非常棘手的。 ECC RAM在计算中的不可见错误可能导致极端问题的应用程序中,或者在与其他条件相结合的大量RAM的应用程序在统计上可能产生错误的应用程序中最为有用。 但是,这些标准本身是模糊的和主观的,因此,这并不是一个客观的标准。
如果任何地方,它可能会login
/var/log/mcelog
(这是RHEL繁殖的关键CPU事件)