本文主要是介绍大规模系统中的亚健康故障(4)外部根因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现在,我们描述硬件亚健康故障的外部根本原因,如温度变化、供电不足、环境条件和配置错误。这些外部原因使故障排除变得复杂,因为症状可能是不确定的,只能在同一在线场景中再现,但在离线(办公室)测试中无法观察到。
5.1 温度
为了使温度保持在正常工作状态,风扇或散热器必须正常工作。以下是未被监测工具检测到的温度变化的根本原因。
空气过滤器堵塞:在一份报告中,空气过滤器堵塞导致交换机中的光学元件由于高温而开始出现故障,从而产生高达10%的丢包率。清洁空气滤清器后,交换机返回正常速度,但只是暂时恢复。很可能是高温损坏了交换机的内部部件。
冷环境:冷温度也会导致亚健康故障[19]。在一次部署中,一些磁盘进入先读后写模式。经检查,机房有“地板下冷空气”系统,这在过去更为常见。机架底部的磁盘具有较高的低性能发生率。这表明温度变化也可能源于部署环境。
风扇损坏:风扇等冷却系统有时作为一个整体工作,而不是单独工作。有一种情况是,计算节点中的风扇停止工作,为了补偿此故障风扇,其他计算节点中的风扇开始以最大速度运行,这会产生严重的噪音和振动,从而降低磁盘性能。同样,这是级联异常的根本原因的一个例子(§3.4)。
风扇固件问题:风扇可以完全正常工作,但其速度由风扇固件控制。在一种情况下,当CPU密集型作业正在运行时,风扇固件的反应不够快,因此CPU在风扇有机会冷却CPU之前进入热节流(降低速度)。
不正确的设计/组装/操作:其中一个故事是,定制主板的设计“糟糕”,导致NIC焊接在CPU和内存后面的主板上。来自CPU的热量影响NIC,导致许多数据包错误和重试。在另一个相关的故事中,由于组装不良,CPU散热器无法与CPU进行物理接触,导致许多节点过热。在另一种情况下,新磁盘被插入带有“非常旧”风扇的机器。风扇没有为较新的磁盘提供足够的冷却,导致磁盘运行缓慢。
5.2 电源
电源供电不足很容易触发硬件的亚健康转台。以下是供电不足的一些根本原因。
电容器不足:在一种定制主板设计中,主板电源控制逻辑上的电容器在特定负载下无法为CPU提供足够的电压。这使处理器不符合规格要求,导致损坏和重新计算。由于无法可靠地再现问题,诊断时间为数月。为了解决这个问题,在现场的数千个节点中的每个主板上添加了一个小电容器。在类似的案例中,也是电容器不足导致电压下降,但只有当多个核心同时从平静状态提升为性能状态时(一种极端情况)出现。因此,对更新的BIOS和软件进行的独立测试没有再现该问题。
PCU固件错误:在一种情况下,电源控制单元(PCU)的固件进入“奇怪”状态,无法提供足够的电源,整个机架无法关闭电源控制。这是一个暂时性故障,有时可以通过重置控制器、有时重新刷新固件以及在极少数情况下更换PCU来修复。
部分电源故障:在一次部署中,每四台机器共享一个电源。但是,当一个电源发生故障时,没有足够的电源以正常容量运行所有四台机器,因此每台机器上的CPU都会受到50%的限制。当这些机器被用于索引服务时,问题层出不穷,无法跟上请求的数量。这个问题花了好几天时间才解决,因为操作员无法了解电源的健康状况。这个问题也很有趣,因为两个电源并不意味着其中一个是完全工作的备用电源,而一个降低的电源,足以让机器继续工作。
耗电邻居:某些节点运行缓慢,因为同一机架中的其他节点耗电较多,导致机架电源不稳定,机架各个部分的电源供电能力下降。诊断这个问题花了几个月的时间,因为它不是源于速度慢的机器,并且只有在邻近节点上运行耗电的应用程序时才会发生。
主板传感器故障:在对速度较慢的机器进行长时间调试后,操作员发现主板上有一个传感器故障,该传感器向操作系统报告了故障值,从而使操作系统将CPU配置为在节能模式下以较慢的速度运行。
5.3 环境
各种环境条件都可能导致硬件出现亚健康故障,如下所示。
高度引发的重大事件:我们收集的最有趣的报告之一是在7500英尺的高空部署的。在这个高度,一些CPU会变热并进入热节流(性能降低)。显然,故障不在CPU上,而是在供应商的冷却设计中,在如此高的海拔下没有提供足够的冷却。在另一份仍处于相同高度的报告中,一些内存系统出现了比平常更频繁的多位故障(ECC检查和维修增加),这些故障内存随后被运回供应商,并装配更多的内存保护。
松散互连:松散的网络电缆和挤压的光纤导致网络延迟高达数百毫秒,使存储集群表现异常。由于症状不确定,诊断该问题需要几天时间。电缆松动/挤压的原因可能是振动或人为因素。在其他一些情况下,SSD和PCIe插槽之间的PCIe连接松动会导致设备驱动程序层多次重试操作。在另一个故事中,当操作员匆忙修理机器时,NVDIMM没有正确插入。尽管速度要低得多,但这台机器仍能正常工作。
震荡:一些磁盘驱动器在机架中部署时的性能降至100 KB/s,但在办公室中测试时的性能最高为100 MB/s。显然,节点周围有故障的机箱风扇导致了如此强烈的振动,使驱动器进入恢复模式。解决方案是在八个硬盘驱动器螺钉中的每一个都添加减震器,并在所有节点中更换大约10%的系统风扇。
环境和操作条件不匹配:在一个机构中,系统按照公布的时钟频率、温度范围和电压范围正确配置。然而,由于未知的环境条件,它无法以最佳方式工作,解决方案是稍微降低时钟,在处理器温度和电压上放置一个软件监视器,如果电压/温度接近装箱值的边缘(即,死节点优于慢节点),则杀死节点。由于不能可靠地复现,诊断时间为数月。在另一种情况下,交换机环境不支持“巨型帧”,导致10 Gbps吞吐量网络的吞吐量很低。修复方法是将MTU大小重新配置为1500字节。
未知原因:在一份有趣的报告中,集群中的所有独立驱动器同时报告了数十亿个SAS错误,持续了五分钟。报告称,这是一名技术人员在另一台机器上进行维护时发生的。
5.4 配置
虽然硬件通常在默认配置下运行,但今天的硬件具有允许配置参数的“旋钮”。此类配置可由人工操作员或软件/固件层(例如BIOS)修改。在我们的发现中,硬件的亚健康故障可能是由以下错误配置引起的。
有缺陷的BIOS固件:在一家机构中,其中一个系统通常每分钟接收28亿个值,但值写入时间一度增加,需要一分钟以上的时间来处理前几分钟的所有值。运营商增加了更多节点(认为这样可以平衡请求峰值的负载)。与直觉相反,添加更多节点会增加写入时间。诊断持续了一个月。根本原因是BIOS对添加到数据库群集的新机器的CPU进行了错误的时钟关闭。这些机器“一瘸一拐”地前进,但被分配了相同数量的负载(就像一台时钟正确的机器)。类似地,如其他地方[16,§3.6]所述,有缺陷的初始化配置也会禁用处理器缓存。
人为错误:关于SSD连接,并非所有PCIe插槽都有相同数量的通道。人工操作员偶尔会在将PCIe卡映射到具有不同通道数的PCIe插槽时出错,这导致全连接带宽利用率不足。在另一种情况下,xtnird.ini中设置的参数不正确。这是一种通过InfiniBand管理高速网络(HSN)的网络配置,未正确设置,导致网络被节流。关于配置错误,有大量相关工作[5,42]。我们相信还有更多的配置错误会导致硬件故障,而未被记录在生产日志中。
这篇关于大规模系统中的亚健康故障(4)外部根因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!