0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在众核场景下EXT4该如何应对才能发挥性能

SSDFans 来源:SSDFans 2024-12-30 11:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景和问题

1. EXT4日志的问题

随着计算机系统加载数百个CPU内核,文件系统的可扩展性得到进一步强调。因此本文主要定位服务器中广泛使用的Ext4文件系统在做日志记录时的可扩展性问题。EXT4日志有两个严重的缺点;串行提交并提交原始页面缓存条目。

串行提交:在EXT4中,日志提交是严格的串行活动。只有在前面的日志提交完成后,它才能提交后面的日志事务。因此,在EXT4中,一次最多只能有一个正在运行的事务,最多只能有一个提交事务。图1展示了串行提交的一个示例:

22edc834-c3e8-11ef-9310-92fbcf53809c.png

将前面的fsync()和后面的fsync()的日志事务分别标记为Tx1和Tx2。JBD线程仅在完成提交Tx1后才开始提交Tx2(t3时刻)。

提交原始页面缓存条目:EXT4使用原始页面缓存条目将更新的内容提交给磁盘。它不会为日志提交创建更新的副本。如果关联的页面缓存条目被提交到磁盘,则需要更新文件系统状态的应用程序将被阻塞。这种情况也叫做事务冲突,会严重影响EXT4的日志记录可扩展性。

2. EXT4日志可扩展性问题的详细分析

本文通过EXT4执行串行日志提交和BarrierFS执行并发日志操作来探索文件系统日志中的可伸缩性平静,最终确认了影响EXT4 和 BarrierFS 性能可扩展性的四个主要组件;事务冲突、串行刷新、事务锁定间隔的长度和复合日志的合并程度。

(1) 事务冲突

事务冲突技术值定义为试图修改DMA下的日志块的文件操作数量。尽管 EXT4 的影子分页功能可以解决事务冲突,但 EXT4 日志记录仍然存在大量事务冲突。

即使BarrierFS同时提交多个事务,它也会使用单独的刷新命令刷新每个事务。由于每个日志提交都会在存储设备上产生单独的刷新,因此BarrierFS 的并发日志设计的好处是体现不出来的。此外,当正在运行的事务试图在flush下修改日志块时,它们都会发生冲突并被阻塞。这种提交事务的更高并发性导致几乎 100% 的文件操作在所有线程中都遭受事务冲突。

(2) 事务锁定

并发日志中可伸缩性失败的主要原因之一是延长的锁定间隔。

对EXT4,事务锁定间隔的长度可以忽略不计,因为锁定期只是等待未完成的文件操作完成的时间,一般来说是很短的。

BarrierFS可以在正在运行的事务摆脱冲突之前过早地将其置于锁定状态,直到所有未完成的文件操作完成并且所有冲突都得到解决。因此,一个正在运行的事务在 BarrierFS 中停留在锁定状态的时间间隔比在 EXT4 中长得多。

两个文件系统锁定时间的对比如图2:

2301a1ec-c3e8-11ef-9310-92fbcf53809c.png

(3) 有限合作

影响文件系统日志性能可伸缩性的关键因素是日志事务的合并程度——日志事务中文件系统操作的数量。

EXT4 日志的严格串行性质实际上有助于增加复合日志的合并程度。当日志提交正在进行时,所有与传入文件操作相关的更新都被插入到正在运行的事务中。因此,随着线程数量的增加,合并机会会增加。

而对于BarrierFS,由于它过早地将正在运行的事务置于锁定状态,从而减少了将多个文件操作合并到单个日志事务中的机会。

二、设计

作者通过以下几个技术点实现了一个支持高并发的日志文件系统—CJFS。

1. 双线程日志

作者将日志提交过程分为两个阶段,即提交阶段和刷新阶段,并为每个阶段分配单独的线程,即提交线程和刷新线程。提交线程负责向存储发出日志事务的写请求。完成后,存储设备会向主机发送中断,通知请求服务已完成。刷新线程负责使日志块和提交块持久化。一旦中断到来,刷新线程被唤醒,并向存储发出刷新命令,使日志块和提交块持久化。

23094604-c3e8-11ef-9310-92fbcf53809c.png

如图3所示,通过分离提交线程和刷新线程,CJFS 可以在不等待前面的日志(231cf050-c3e8-11ef-9310-92fbcf53809c.png)提交完成的情况下提交后续事务23356946-c3e8-11ef-9310-92fbcf53809c.png

2. 多版本影子页

为了解决事务冲突,作者提出了多版本影子分页。当提交线程启动日志提交时,它会创建日志事务中所有页面的影子副本。在提交日志事务时,提交线程使用事务中每一页的影子副本来将日志事务传输到存储设备,而不是使用原始页面。由于日志模块使用影子页面进行日志提交,后续的文件操作可以更新原始页面。

3. 机会性合并

由于影子页面的数量有限,如果所有预分配的影子页面都用于保存日志,仍然会发生事务冲突。如果发生事务冲突,正在运行的事务将进入锁定状态,并且所有修改文件系统状态的后续文件操作都将被阻止。为了解决这个问题,作者提出了机会合并。当所有未完成的文件操作完成时,提交线程检查是否存在任何冲突。如果存在冲突,提交线程会将锁定状态的事务返回到运行状态并被阻塞。当提交线程被阻塞后,正在运行的事务可以继续容纳新传入的日志块。

2341079c-c3e8-11ef-9310-92fbcf53809c.png

如图四展示了机会合并的一个例子,23606ae2-c3e8-11ef-9310-92fbcf53809c.png在两个 LOCKED 状态之间的时间段内处于RUNNING状态。在运行事务的状态变为RUNNING状态后,所有被阻塞等待日志句柄的挂起文件操作都被发布日志句柄。借助这样的机会合并,CJFS 可以将大量文件操作合并到正在运行的事务中,从而提高文件系统操作的并发性。

4. 复合刷新

为了使 CJFS 的日志以完全并发的方式工作,提交线程和刷新线程都应该能够以并发的方式处理关联的任务。针对EXT4和BarrierFS的序列化刷新问题,作者提出了一种复合刷新的概念:当刷新线程即将发送刷新命令时,它会检查是否存在任何后续提交事务,如果后续提交事务不存在,则发送刷新命令;如果存在接下来的提交事务,它会改为发送cache barrier命令(控制闪存设备保证请求处理顺序的命令),从而将持久化事务的任务委托给后面的事务提交请求。通过cache barrier命令,存储控制器可以确保各个事务的日志块按顺序持久化。

23720cd4-c3e8-11ef-9310-92fbcf53809c.png

图5说明了复合刷新的工作原理。当flush线程传输完事务231cf050-c3e8-11ef-9310-92fbcf53809c.png后,flush线程开始传输事务2395531a-c3e8-11ef-9310-92fbcf53809c.png,而不是调用flush来刷新事务231cf050-c3e8-11ef-9310-92fbcf53809c.png。当刷新线程完成传输事务2395531a-c3e8-11ef-9310-92fbcf53809c.png时,它发现没有其他正在提交的事务正在运行。然后,它调用flush使事务231cf050-c3e8-11ef-9310-92fbcf53809c.png和事务2395531a-c3e8-11ef-9310-92fbcf53809c.png持久化。

三、实验效果

1. 实验设置

作者将CJFS与BarrierFS、SpanFS [15]、Vanilla EXT4 和带有 Fast-Commit的EXT4进行了比较。同时使用三个基准测试集进行测试:用于邮件服务器的varmail,用于文件服务器的dbench,以及MySQL上的 OLTP-Insert。测试平台为40核服务器(两个Intel Xeon Gold 6230处理器和512 GB DRAM)和三星970 Pro SSD(MLC闪存,NVMe)进行实验。

2. 实验结果

23e1d564-c3e8-11ef-9310-92fbcf53809c.png

图6

可以看到在多种测试集及其对应的多种数据更新场景下,CJFS都能达到最好的多核性能扩展效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文件系统
    +关注

    关注

    0

    文章

    301

    浏览量

    20811
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20759

原文标题:在众核场景下,EXT4该如何应对才能发挥性能呢?

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    局部放电在线监测装置不同应用场景的选择要点

    针对不同应用环境,局部放电在线监测装置的选择也存在一定差异,技术适配性、核心性能、安装维护、系统兼容性、环境适应性及扩展性等维度都是需要进行综合考量的内容,不同应用场景针对性选择适
    的头像 发表于 11-10 15:14 80次阅读

    应对运输振动风险:ASTM D3580标准的测试策略与性能验证

    物流运输过程中,包装件可能因振动、冲击等动态载荷导致破损,进而影响产品安全。ASTMD3580标准作为国际公认的包装件抗振动性能测试方法,为评估包装系统的可靠性提供了科学依据。本文将深入解析标准
    的头像 发表于 10-15 11:29 449次阅读
    <b class='flag-5'>应对</b>运输振动风险:ASTM D3580标准<b class='flag-5'>下</b>的测试策略与<b class='flag-5'>性能</b>验证

    极细同轴线束绝缘厚度控制如何影响阻抗稳定性?

    极细同轴线束的绝缘厚度与阻抗稳定性,是其高速传输应用中能否可靠发挥性能的关键。通过合理设计、严谨工艺与精密检测,才能实现高速信号传输中的低损耗和高稳定性。
    的头像 发表于 09-09 14:11 930次阅读
    极细同轴线束绝缘厚度控制如何影响阻抗稳定性?

    在哪些场景使用OM4跳线更合适

    OM4光纤因其更高的带宽和更长的传输距离,需要高性能、高可靠性或未来扩展性的场景中更具优势。以下是适合使用OM4光纤的典型
    的头像 发表于 08-07 10:28 434次阅读
    在哪些<b class='flag-5'>场景</b><b class='flag-5'>下</b>使用OM<b class='flag-5'>4</b>跳线更合适

    150V降压芯片H6266B 48V60V72V90V100V120V降3.3V5V12VBUCK仪表供电IC 高性能 外围少

    稳定工作。​ 聚焦场景应用,发挥性能优势​ H6266B 的典型应用场景集中高压供电领域:​ 汽车电子: 汽车充电器、车载设备供电,适应车辆电气系统的电压特性;​ 电动车领域: 电动
    发表于 08-06 16:09

    性能低功耗双Wi-Fi6+BLE5.3二合一

    随着物联网技术的不断发展,无线通信模块各种应用场景中扮演着越来越重要的角色。近日,蓝科迅通科技宣布推出一款基于Nordic Semiconductor的Wi-Fi 6芯片nRF7002和高性能
    发表于 06-28 21:42

    服务器数据恢复—ocfs2文件系统被格式化为Ext4文件系统的数据恢复案例

    服务器存储数据恢复环境&故障: 人为误操作将Ext4文件系统误装入一台服务器存储上的Ocfs2文件系统数据卷上,导致原Ocfs2文件系统被格式化为Ext4文件系统。
    的头像 发表于 06-10 12:03 563次阅读
    服务器数据恢复—ocfs2文件系统被格式化为<b class='flag-5'>Ext4</b>文件系统的数据恢复案例

    紫光展锐4G旗舰性能之王智能穿戴平台W527登场 一大三小异构处理器架构

    。 紫光展锐正式发布4G旗舰性能之王智能穿戴平台——W527,产品采用业界领先的一大三小异构处理器架构,搭载蓝牙5.0和BLE双模,支
    的头像 发表于 06-03 16:44 8376次阅读
    紫光展锐<b class='flag-5'>4</b>G旗舰<b class='flag-5'>性能</b>之王智能穿戴平台W527登场 一大<b class='flag-5'>核</b>三小<b class='flag-5'>核</b>异构处理器架构

    一文详解Video In to AXI4-Stream IP

    Video In to AXI4-Stream IP用于将视频源(带有同步信号的时钟并行视频数据,即同步sync或消隐blank信号或者而后者皆有)转换成AXI4-Stream接口形式,实现了接口转换。
    的头像 发表于 04-03 09:28 2239次阅读
    一文详解Video In to AXI<b class='flag-5'>4</b>-Stream IP<b class='flag-5'>核</b>

    预接型OM4光纤配线架详解

    ·km。 传输距离:40Gbps,传输距离可达100米;10Gbps可延伸至550米,适合数据中心高密度布线。 兼容性:兼容现有OM3/OM2网络设备,但需注意升级网络设备以充分发挥性能
    的头像 发表于 03-21 10:17 790次阅读

    Nordic蓝牙5.2模块PTR5618性能场景应用

    与私有网络的场景,例如智能家居中枢或工业传感器网络。 二、技术亮点与性能表现 1.超低功耗与高能效比 PTR5618待机模式的功耗仅数微安,结合Nordic芯片的动态功耗管理技术,
    发表于 03-14 15:20

    科技AGV无人叉车的应用场景有哪些?

    科技AGV无人自动叉车多个应用场景中均展现出卓越的性能和广泛的应用价值。下面是针对每个应用场景的简要概括、适用车型及其功能的详细介绍联
    的头像 发表于 03-07 15:33 569次阅读
    联<b class='flag-5'>核</b>科技AGV无人叉车的应用<b class='flag-5'>场景</b>有哪些?

    海康机器人F4系列:搬运多面手,拓宽应用场景

    物料,还是铝锭等特殊形态物料,F4系列都能轻松应对,展现出强大的搬运能力。这一特性突破了传统叉车单一料框搬运的局限,使得F4系列不同场景
    的头像 发表于 02-19 15:23 1035次阅读

    时域网络分析仪的原理和应用场景

    。综上所述,时域网络分析仪凭借其先进的技术原理和广泛的应用场景通信、电子制造、科研以及网络管理和维护等多个领域都发挥着重要的作用。
    发表于 01-13 16:03

    顶坚北斗短报文终端极端场景的应急通信保障

    顶坚北斗短报文终端是一种基于北斗卫星导航系统的新型通信设备,具备北斗定位和北斗短报文收发通信功能,能够没有地面通信网络覆盖的地区实现信息的收发。这种终端极端场景的应急通信保障中
    的头像 发表于 12-17 11:44 850次阅读
    顶坚北斗短报文终端<b class='flag-5'>在</b>极端<b class='flag-5'>场景</b><b class='flag-5'>下</b>的应急通信保障