基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
基础
基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
测试
基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
Hadoop
基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
硬件
基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
内核

导读

众所周知,双11的稳定依赖于坚如磐石的系统,包括软件以及硬件,只有在软硬件都可靠的前提下,才可能保证流畅的用户体验。所以我们必须做到两手抓且两手都要硬才行,以下就让我们来看一个双11中软硬件深度结合优化的真实案例。


业务面临的挑战

某业务在使用某型号搭配新型NVME SSD的服务器过程中发现IO抖动问题,IO抖动造成了业务抖动,严重影响业务性能稳定性。

业务不仅关注NVME SSD本身的读写延时、IOPS,而且需要保证所有IO的延时、IOPS要保持稳定,不能剧烈抖动。


如下图所示,随着时间的变化,TPS的值发生剧跌抖动。我们需要将TPS和延时变得平滑、稳定,而不能发生剧烈抖动,保证业务QoS。


基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

IO抖动根因

为了复现抖动问题,我们使用FIO工具进行压力测试。在测试过程中,增加了文件删除动作,进而发现了更严重的抖动问题 : IO带宽异常跌0。IO带宽异常跌0对业务来说,是隐藏的一个巨大风险。


下图是OS上删除满盘文件后的FIO性能测试数据,前2小时性能衰退明显。


基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

以下是NVME SSD带宽异常跌0时的IOSTAT的数据。


基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

为了定位和解决该问题,我们需要分析清楚NVME IO带宽跌0时系统处于何种状态:是NVME处理IO超时?还是卡在其他内核某个位置? 即跌0时是哪种状态:

1)NVME SSD状态 ;

2)LVM状态 ;

3)FIO测试进程状态。

为了准确获取系统状态信息,我们编写了内核模块,成功抓取到写带宽跌0时,LVM设备、NVME设备、FIO进程等多个状态信息。

根据抓到跌0时的状态信息,我们分析了FIO整个写流程,发现内核代码中,NVME驱动和LVM驱动并未直接使用linux内核的通用块设备层,也就是无法使用通用块设备层的IO拥塞控制功能,并且自己并未实现IO拥塞控制。

内核中,LVM和NVME驱动没有IO拥塞控制,导致块设备请求队列上的IO请求数量无限制增大。而文件系统的Journal/Metadata和Data混在一起,都平等地排在块设备请求队列上,驱动将所有数据一起回写到SSD上,造成累积的IO请求数量过多,进而导致Journal数据回写时间不可预期。


同步写要求Journal+Data同时完成,只有当前面的Journal写完成之后,才能进行下一步IO写。而Journal数据回写时间不可预期,就会引起阻塞后续IO写,进而写带宽异常抖动。


LVM和NVME驱动均不经过Linux内核通用块设备层(有IO拥塞控制功能),且自己未实现IO拥塞控制,于是出现IO异常跌0或异常抖动。


基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

软硬件深度结合

在NVME驱动中实现了IO拥塞控制功能,可以解决软件层面引起的抖动问题,但我们发现因为NVME SSD硬件本身内部存在GC(Garbage Collection,垃圾回收)机制,同样还是会引起IO的剧烈抖动,所以在大压力场景下,仅优化NVME驱动(软件层面)仍然不能够满足业务的QoS要求,这就要求我们必须要考虑软硬件深度结合来进行优化。


在确认了SSD本身的抖动主要是由于内部GC导致之后,我们调整了OP(Over-provisioning,预留空间),再测试,下图是软硬件深度优化后的TPS和RT性能数据。


基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构

由上可见,我们通过增加NVME驱动IO拥塞控制 + 调整SSD OP,进行了软硬件深度结合的优化,从而保证该业务在双11最终实现了IO处理上的丝般顺滑,助力了基础设施对双11坚如磐石的保障。


我们还会在软硬件结合优化的道路上持续走下去,从而保证基础设施具备更强的可用性和可靠性!


欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,pythonphp,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:204132433


Hadoop源代码研究群

兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop

QQ群:204050420

tags: IO,NVME,#160,抖动,SSD,软硬件,拥塞,内核,LVM,FIO,带宽,驱动,Journal,优化
分页:12
转载请注明
本文标题:基础设施助力双11(七):软硬件深度优化,让存储IO如丝般顺滑架构
本站链接:http://www.codesec.net/view/570212.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 大数据技术 | 评论(0) | 阅读(111)