服务器可靠性提升(一)内存CE增强隔离技术

简介: 为了提升系统的稳定, 阿里巴巴基础设施服务器系统创新团队联合阿里云等业务团队,对服务器硬件问题导致非预期的宕机进行治理。

image.png

“稳定性及性价比是云服务的核心竞争力。稳定性是基础,没有它云服务的摩天大楼分分钟就变成危房。虽然云原生架构的应用能更好地容忍单点的故障,但这并不意味着我们可放低标准,因为即使是单点故障也通常会对客户造成影响、破坏口碑,更不要说是系统整体故障。”阿里巴巴研究员余锋曾在2018年杭州云栖大会技术分享时表示。

为了提升系统的稳定, 阿里巴巴基础设施服务器系统创新团队联合阿里云等业务团队,对服务器硬件问题导致非预期的宕机进行治理。

提升系统的整体可靠性,为什么首先从内存入手?

1)内存部件作为冯诺伊曼的计算机体系结构中,发展的最快的部件之一,内存的发展和演进速度已经超过CPU的发展速度,同时内存占据最重要的位置之一,作为直接向中央处理器提供数据缓存的关键部件,内存系统的故障,直接导致处理器停止响应,导致系统宕机;

2)从计算机内存的工程工艺角度,内存作为近几年技术飞速发展的一个部件,单DIMM容量从几百M到今天的最大几百G,内存的存储密度越来越高,内存的电压越来越低,与之相反的,内存的主频反而越来越高,内存作为一个半导体的器件,存储单元的密度上升,电压降低,主频的提升,这些不利因素,抵消掉半导体可靠性技术提升的红利以后,导致内存的故障率升高。

3)随着CPU处理器技术的发展,单CPU支持的内存容量越来越大,当前主流的CPU,从两年前的两个通道,发展到现在的六个通道,DDR通道的带宽和频率相对两年前提升一倍以上,与之对应的服务器配置的内存条数越来越多,总容量越来越大,运行频率越来越高,这些也导致了整个计算机系统中,内存出现问题的比率越来越高。从统计数据上看,内存故障导致的宕机比率占到很大一部分,这符合预期,内存失效问题比例高也在情理之中。

image.png

因此对于硬件导致的非预期宕机问题的治理也是先从降低内存故障率入手。

通过对某典型产品业务硬件宕机数据分析, 发现UCE(不可纠正错误)问题占比在内存故障导致的宕机问题中超过大半, 因此内存故障治理也主要聚焦在如何降低内存UCE问题,服务器团队当前主要做了以下方面的工作:

内存故障隔离增强,避免持续恶化

1.内存错误的分级处理

2.服务器故障诊断系统

未来针对服务器可靠性提升,还会陆续开展以下几个方面:

1.资源级/硬件级的故障隔离

2.内存故障预测

3.HDD &SSD 故障预测

为什么要做内存CE的增强隔离?

现在的内存都已经有ECC校验功能,单个bit错误会自动纠正过来,不会对系统造成影响。既然内存最常见的错误已经能够被自动纠正过来,且不会对系统的运行造成影响,那么我们还有必要做增强的故障内存隔离吗,内存故障增强隔离到底增强了些什么,我们这样做的收益到底是什么?

首先,这里直接引用google paper《DRAM Errors in the Wild: A Large-Scale Field Study》中的结论。如下

image.png

Correlations between correctable and uncorrectable errors in the same DIMM.The left graph shows the UE probability in a month depending on whether there were CEs in the same month or in the previous month. The numbers on top of the bars give the increase in UE probability compared to a month without Ces (three left-most bars) and the case where there were no Ces in the previous month (three right-most bars). The right graph shows the factor increase in the probability of observing an UE as a function of the number of Ces in the same month.

内存条在一段时间内有可纠正错误产生,这条内存再次出现问题的概率会明显增加,出现CE和UE的概率都会变高。CE需要操作系统来处理,会消耗系统的处理资源,UE在当前的Intel Xeon处理器上,会直接导致宕机。内存增强隔离通过对已经出现错误的内存单元进行处理,来达到消除影响系统正常运行的潜在风险,从而提升系统可靠性。所以,虽然当前的服务器内存,已经支持了单bit自动纠错的功能,但是为了提升系统的可靠性,降低内存问题导致的性能下降,宕机风险,内存的单bit纠错功能是不够的,还需要采取一些额外的方式,来提升系统的可靠性。

了解内核的人可能会问,linux操作系统中有一整套完备的机制,来对内存的故障进行管理。操作系统也支持内存的故障管理了,阿里的增强隔离和Linux中的内存故障管理有什么差异,难道比Linux的内存故障管理还要全面吗?Linux对内存的故障管理定义的比较完整。Linux对内存的错误主要是依照MCE来进行处理的。

当前OS中,对于内存page的隔离是通过系统的mcelog服务实现。mcelog中的MCE隔离动作如下:

image.png

通过这些表格可以看到linux操作系统对内存的故障做了一些处理,Linux对内存的故障处理使用了一些故障管理的脚本,留了一些处理接口,依照这些脚本和接口,能够减少一些内存故障对系统的影响,但是这些接口和处理脚本,还存在一些问题解决不了,其中最大的一个障碍就是OS能够感知,能够处理的问题,都不算是太严重的问题,都是可以解决的问题。有相当一部分的问题,OS感知到的时候,OS已经死掉了。对于这一类的问题,是当前引起服务器宕机的主要问题。

为此,基础设施服务器系统创新团队,独创一套机制,通过带内带外的方式,成功的在OS的基础上,设计出一套内存故障隔离增强的解决方案。

——当检测到系统的内存出现一些轻微的故障的时候,我们通过基于出错存储单元物理位置的相关性,统计出错单元的故障频度和故障数变化率,使用基本的漏桶算法加上人工智能的自学习算法,来评估这个故障会不会恶化,从而决策是否需要将这个内存单元从系统中隔离出来。

——通过和阿里内核,阿里固件的配合,来确保隔离操作成功,并且不会对操作系统的运行以及业务软件的运行造成影响,从而将内存故障成功的控制在问题发生的初期。

——通过提前对故障的内存单元进行处理,确保业务运行的稳定性,降低宕机率,提升系统稳定性, 当前阿里的内存故障隔离技术对优化宕机率的贡献,已经做到了25%。

总结

针对当前OS中mcelog 服务的不足,基础设施服务器创新团队做了上述的增强改进。通过对故障内存page 的有效隔离,避免进一步出现不可纠正的内存错误,降低宕机率提升系统稳定性。

对于内存故障隔离,未来将会根据内存故障地址解析所在的 row 、colom 、bank ,rank 等,更加精准的判读出故障单位在内存DIMM上分布情况, 了解内存错误在一个DIMM上的分布情况。同时也会基于预测算法对故障单元周围的颗粒进行提前隔离。

目前关键的技术已经突破,核心idea也已经申请专利。

image.png

目录
相关文章
|
19天前
|
Java 关系型数据库 API
探索后端技术:构建高效、可靠的服务器端应用
在当今数字化时代,后端技术是任何成功应用程序的基石。它涉及服务器、数据库和应用程序之间的交互,处理数据存储、业务逻辑和系统性能等关键任务。本文将深入探讨后端开发的核心概念、常见技术栈及其实际应用,帮助读者更好地理解和掌握构建高效、可靠后端系统的技巧与策略。
|
12天前
|
监控 中间件 Java
后端技术:构建高效、稳定的服务器端应用
【10月更文挑战第5天】后端技术:构建高效、稳定的服务器端应用
46 0
|
15天前
|
监控 关系型数据库 Serverless
探索后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端开发的核心概念和关键技术,从服务器架构到数据库管理,再到安全防护,为读者提供全面的后端技术指南。无论是初学者还是经验丰富的开发者,都能从中汲取灵感,提升自己的技术水平。
|
6天前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
62 32
|
5天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
存储 弹性计算 测试技术
阿里云服务器实例规格vCPU、内存、网络带宽、网络收发包PPS、连接数等性能指标详解
阿里云服务器ECS实例可以分为多种实例规格族。根据CPU、内存等配置,一种实例规格族又分为多种实例规格。而实例规格又包含vCPU、处理器、内存、vTPM、本地存储、网络带宽、网络收发包PPS、连接数、弹性网卡、云盘带宽、云盘IOPS等指标,本文为大家详细介绍实例规格的这些指标,以供大家了解和选择。
阿里云服务器实例规格vCPU、内存、网络带宽、网络收发包PPS、连接数等性能指标详解
|
10天前
|
存储 机器学习/深度学习 应用服务中间件
阿里云倚天云服务器实例:计算型c8y、通用型g8y、内存型r8y实例介绍
阿里云倚天云服务器是基于阿里云自研的倚天710 ARM架构CPU打造的高性能计算产品系列,它依托先进的第四代神龙架构,旨在为用户提供稳定可预期的超高效能体验。倚天云服务器在存储、网络性能及计算稳定性方面实现了显著提升,主要得益于其芯片级的快速路径加速技术。本文将深度解析阿里云倚天云服务器的计算型c8y、通用型g8y、内存型r8y实例,探讨其优势及适用场景,以供选择参考。
|
1月前
|
分布式计算 大数据 数据挖掘
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例是阿里云的第八代云服务器实例规格,是除了计算型c7和c8y、通用型g7与g8y、内存型r7与r8y之外同样深受用户喜欢的云服务器实例规格。本文将详细介绍阿里云第八代云服务器中的计算型c8i、通用型g8i、以及内存型r8i实例,包括它们的技术特性、适用场景以及最新的活动价格信息。
阿里云服务器计算型c8i、通用型g8i、内存型r8i实例测评与价格参考
|
27天前
|
存储 关系型数据库 API
深入理解后端技术:构建高效、可扩展的服务器端应用
本文将探讨后端开发的核心概念和技术,包括服务器端编程、数据库管理、API设计和安全性等方面。通过深入浅出的方式,让读者了解如何构建高效、可扩展的后端系统。我们将从基本的后端框架开始,逐步深入到高级主题,如微服务架构和容器化部署。无论您是初学者还是有经验的开发人员,都能在本文中找到有价值的信息和实用的建议。
|
29天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
99 5