服务器可靠性提升(一)内存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

目录
相关文章
|
28天前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
20天前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
57 0
|
15天前
|
存储 缓存 NoSQL
Redis 服务器指南:高性能内存数据库的完整使用指南
Redis 服务器指南:高性能内存数据库的完整使用指南
|
18天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
29天前
|
缓存 算法 编译器
C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。
C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。
35 0
|
1月前
|
弹性计算 固态存储 Linux
2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
2024阿里云服务器租用优惠价格表,轻量服务器2核2G3M带宽轻量服务器一年61元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置、3M固定带宽、40G ESSD Entry云盘,99元一年、2核4G服务器30元3个月、2核4G配置365元一年、2核8G配置522元一年,云服务器u1、云服务器c7、g7和r7优惠价格表,CPU内存带宽系统盘配置详细报价:
731 3
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
24天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
27天前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
414 4

热门文章

最新文章