双 CPU 是否提供容错?

Sov*_*ero 16 central-processing-unit

假设我购买了两个 Intel Xeon 并将它们安装到服务器级硬件中...如果一个 CPU 出现故障,另一个是否仍能正常工作并弥补不足,从而提供容错能力?

这似乎不太可能,但我想我会问而不是做出任何假设。

Mar*_*son 29

在普通的双插槽系统中,不可以,尽管有些服务器确实允许处理器和 RAM 的热插拔。所以这些东西确实存在,但它们处于非常非常高端的市场。

这并不是什么大问题——在您的服务器中所有可能发生故障的情况中,处理器就在列表的底部,旁边是那些将主板固定在机箱上的小黄铜竖板。

  • @Oddthinking 我认为你太认真了。 (8认同)
  • 即使使用可热插拔的 CPU,系统仍然不能容忍其中之一的突然故障。假设操作系统内核当前正在死亡的 CPU 上执行,它不能只是在另一个 CPU 上恢复执行。对于可热插拔的 CPU,内核必须先优雅地关闭该 CPU。 (5认同)
  • @TomTom:当然,那么我们谈论的是古老的 TANDEM(及其现代继承者)之类的东西,而不是普通的 x86-64 架构。 (5认同)
  • @Patrik:是的,对。你知道 - 错误 ;) 这是高端 CPU 的标准行为 - 当然,这是 CPU 成本超过 5000 美元的大型机。尽管如此,它们仍然使用事务内存,并且事务将在另一个 CPU 上重新启动。 (4认同)

ase*_*seq 9

谈到 x86 商品硬件,如果系统正在运行并且 CPU 出现故障,事情将正常停止。然而,系统在重新启动后会正常运行,尽管速度会慢一些。

多个 CPU 主要用于并行处理,而不是真正用于容错。但是,如果一个 CPU(或更多)出现故障,系统仍然可以启动是很好的。

我会说您的 CPU 发生故障的可能性比 Mark Henderson 建议的要大一些,但仍然不太可能。根据我的经验,这种情况主要发生在系统频繁过热并自行关闭时(这在空调不佳的办公室服务器机房中很容易)。CPU 不太喜欢这样。

当然,如果您有一个不错的 IBM 大型机或类似主机,热插拔 CPU(板)就足够“容易”了。


flu*_*ffy 5

如果 CPU 发生故障——根据其他答案,这是极不可能的——系统基本上无法恢复。根据它失败的方式,它最终可能会以奇怪的方式破坏内存,或破坏进程表,或者谁知道还有什么。如果您有某种主动监控系统,可以密切关注 CPU 以确保它运行良好(并且能够回滚 CPU 在其死亡阵痛期间所做的任何更改),那也将是另一个系统这可能会失败,并且以编程方式确定软件故障非常困难(基本上,您实际上可以做到的唯一方法是让另一个 CPU 在完全相同的时间执行完全相同的操作并比较结果 - 然后最终会减慢速度下来这样有'

也就是说,与 CPU 故障一样罕见,增加系统中的 CPU 数量实际上会使您的故障率上升,因为现在您有两倍的事情可能会失败。您还有其他可能发生故障的子系统,例如保持 CPU 缓存同步的子系统,功耗和热输出的增加也是导致整个系统故障的因素(当然,主动冷却风扇是另一个原因)故障点)。