最新健康系统bug(大规模系统中的亚健康故障)
最新健康系统bug(大规模系统中的亚健康故障)§3.1不同的根本原因:内部原因(如固件错误或设备错误/磨损)以及外部因素(如配置、环境、温度和电源问题)可能导致硬件亚健康。重要的调查结果和意见不幸的是,目前对于硬件亚健康的研究是不足的。之前的一些论文已经暗示了这个问题的紧迫性,并且使用了许多不同的术语,如“fail-stutter”、“gray failure”和“limp mode”。然而,这些讨论并不仅仅集中在硬件上,还夹杂着软件性能故障。在之前的论文中大约只有8个关于亚健康的硬件讨论,这可能不足以让系统社区相信这个紧迫的问题。为了填补该方向研究的空白,我们,一组来自12家机构的大型数据中心系统的研究人员、工程师和运营商,决定撰写这篇“社区论文”。更具体地说,我们收集了101份关于硬件亚健康行为的详细报告,包括硬件类型、根本原因、症状以及对高级软件的影响。据我们所知,这是公开报告的生产系统中亚健康故障的最完整说明。由于篇幅限制,我
概要
硬件亚健康故障是一个研究不足的故障模型,本文研究了从12家机构的大规模集群部署中收集的101份硬件亚健康事件报告。我们发现,所有硬件类型,如磁盘、SSD、CPU、内存和网络组件都可能出现性能故障。我们进行了一些重要的观察(例如故障从一种形式转换为另一种形式),级联产生的根本原因和影响可能很长,亚健康的故障可能有不同的症状。从这项研究中,我们向供应商、运营商和系统设计师提出建议。
- 介绍
理解故障模型是建立鲁棒系统的重要标准。几十年的研究已经发展出成熟的失效模型,如fail-stop失效停止、fail-partial部分失效、fail-transient瞬态失效、faults as well as corruption故障以及腐败和byzantine failures拜占庭式失效。
本文重点介绍了一种未得到充分研究的“新”故障类型:亚健康故障,即仍在运行且功能正常但处于降级模式的硬件,其性能低于预期。我们发现,所有主要硬件组件都可能出现亚健康故障。例如,由于振动,磁盘吞吐量可能会下降三个数量级至100 KB/s,SSD操作可能会因固件错误而暂停几秒钟,存储卡可能会因NVDIMM连接松动而降低到正常速度的25%,CPU可能会因电源不足而意外地以50%的速度运行,最后,由于缓冲区损坏和重传,网卡性能可能会崩溃到Kbps级别。虽然亚健康故障在过去并不经常出现,但今天,随着系统大规模部署,以及许多复杂的大规模操作条件,发生故障慢硬件事件的可能性增加。此外,随着硬件技术的不断扩展(更小、更复杂),今天的硬件开发和制造只会加剧问题。
不幸的是,目前对于硬件亚健康的研究是不足的。之前的一些论文已经暗示了这个问题的紧迫性,并且使用了许多不同的术语,如“fail-stutter”、“gray failure”和“limp mode”。然而,这些讨论并不仅仅集中在硬件上,还夹杂着软件性能故障。在之前的论文中大约只有8个关于亚健康的硬件讨论,这可能不足以让系统社区相信这个紧迫的问题。
为了填补该方向研究的空白,我们,一组来自12家机构的大型数据中心系统的研究人员、工程师和运营商,决定撰写这篇“社区论文”。更具体地说,我们收集了101份关于硬件亚健康行为的详细报告,包括硬件类型、根本原因、症状以及对高级软件的影响。据我们所知,这是公开报告的生产系统中亚健康故障的最完整说明。
由于篇幅限制,我们在表1中总结了我们独特而重要的发现,在此不再重复。该表还描述了论文的组织结构。具体而言,我们首先提供高水平的观察结果(§3),然后详细说明内部根本原因(§4)和外部因素(§5)的故障缓慢事件,最后向供应商、运营商和系统设计师提供建议(§6)。我们希望,我们的论文将推动更多的研究和解决这个问题。
重要的调查结果和意见 |
§3.1不同的根本原因:内部原因(如固件错误或设备错误/磨损)以及外部因素(如配置、环境、温度和电源问题)可能导致硬件亚健康。 |
§3.2故障从一种形式转换为另一种形式:停止类故障、部分和瞬态故障可转换为亚健康(例如,损坏数据频繁错误屏蔽的开销可导致性能下降)。 |
§3.3不同的症状:亚健康行为可表现为永久减速、瞬时减速(上升和下降性能)、部分减速(子部件退化)和瞬时停止(例如偶尔重新启动)。 |
§3.4一长串根本原因:一长串原因(例如,风扇停止工作,使其他风扇以最大速度运行,导致严重振动,从而降低磁盘性能)可能会导致硬件亚健康。 |
§3.4级联影响:亚健康的硬件可能导致整个集群性能崩溃;例如,降级的NIC使许多作业锁定健康机器中的任务信号/容器,因此新作业无法找到足够的可用信号。 |
§3.5罕见但致命(检测时间长):由于多种原因(例如,没有完整堆栈可见性、环境条件、级联根本原因和影响),可能需要数小时到数月的时间来确定和隔离亚健康的硬件。 |
建议 |
§6.1对供应商:当需要屏蔽的错误变得更频繁时(例如,由于内部故障增加),应抛出更明确的信号,而不是以高开销运行。应收集和报告设备级性能统计数据(例如,通过S.M.A.R.T),以便于进一步研究。 |
§6.2对操作员:39%的根本原因是外部因素,因此亚健康故障排除必须在线完成。由于级联的根本原因和影响,需要进行全堆栈监控。亚健康故障的根本原因和影响表现出一定的相关性,因此统计相关性技术可能是有用的(具有全堆栈监控)。 |
§6.3系统设计师:虽然软件系统在处理故障停止(二元)模型方面是有效的,但需要更多的研究来容忍亚健康的(非二元)行为。系统架构师、设计人员和开发人员可以使用本文中报告的所有根本原因对其系统进行故障注入,以评估其系统的健壮性。 |
方法论
从12家机构的大规模集群部署中收集了101份关于硬件亚健康的报告(表2)
机构 |
节点规模 |
公司1 公司2 公司3 公司4 公司5 |
>10000 150 100 >1000 >10000 |
大学A 大学B 大学C 大学D |
300 >100 >1000 500 |
国家实验室X 国家实验室Y 国家实验室Z |
>1000 >10000 >10000 |
在这种规模下,更可能出现亚健康的情况。这些报告都是未格式化的文本,由工程师和操作员编写,由于影响的严重性,他们仍然清晰地记得这些事件。这些事件是在2000年至2017年期间报告的,2010年之前只有30起报告。每个机构都报告一组独特的根本原因。例如,尽管一个机构可能已经发现损坏的缓冲区是导致网络硬件(数据包丢失和重传)多次减速的根本原因,但它仅作为一份报告收集。因此,单个报告可以表示事件的多个实例。如果多个不同的机构报告相同的根本原因,则会对其进行多次计数。然而,大多数根本原因(66%)是唯一的,只有22%是重复的(12%的报告没有指出根本原因)。更具体地说,就是整理总结表2中的机构提供的平均报告重复事件;例如,5个机构的固件错误,3个机构的驱动程序错误,2个机构的剩余问题。原始(部分)数据集可在我们的集团网站上下载[2]。
我们注意到,没有可分析的硬件级性能日志(详见§6.1),这妨碍了大规模日志研究。我们坚信,还有更多的问题被遗漏和忽视。有些事情也不会随着操作员的工作变动而流传。文章不包括已知的减速(例如,随机IO导致磁盘减速,或GC活动偶尔会使SSD减速)。文章只包括意外降级的报告。例如,报告了使GC活动处于更难工作的状态的非预期的硬件故障。