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

    文章

    285

    浏览量

    19913
  • 线程
    +关注

    关注

    0

    文章

    505

    浏览量

    19697

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

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

收藏 人收藏

    评论

    相关推荐

    模块化仪器的技术原理和应用场景

    。 二、应用场景 自动化测试系统:模块化仪器自动化测试系统中发挥着重要作用,可以适应多种测试需求,提高测试效率和准确性。它们通常由软件驱动,便于集成到测试系统中,实现自动化测量和报告。 通信与卫星领域
    发表于 11-28 15:09

    汽车雷达回波发生器的技术原理和应用场景

    的波束并向前传播,以模拟真实的雷达工作环境。应用场景 自动驾驶系统的开发和测试:自动驾驶系统的开发和测试过程中,汽车电子雷达回波发生器可以模拟各种交通场景的目标回波,评估雷达系统
    发表于 11-15 14:06

    服务器数据恢复——Ext4文件系统umount失败的数据恢复案例

    块组:Ext4文件系统的全部空间被划分为若干个块组,每个块组结构基本上相同。 块组描述符表:每个块组都对应一个块组描述符,这些块组描述符统一放在文件系统的前部,称为块组描述符表。每个块组描述符大小
    的头像 发表于 11-13 13:25 298次阅读
    服务器数据恢复——<b class='flag-5'>Ext4</b>文件系统umount失败的数据恢复案例

    航空插头连接器:这些工业场景的必备选择!

    工业自动化和精密制造日益普及的今天,连接器的选择对设备的稳定运行至关重要。航空插头连接器,以其独特的性能优势,特定工业场景发挥着不可替
    的头像 发表于 10-27 09:33 342次阅读
    航空插头连接器:这些工业<b class='flag-5'>场景</b><b class='flag-5'>下</b>的必备选择!

    TAS6424E-Q1什么场景bit4会置为1?

    测量clk频率都是正确的;请问什么场景bit4会置为1;其他三个clk正常,但数据线一直为0,是否会触发bit置为1;
    发表于 09-27 07:06

    脉冲式线圈测试仪的技术原理和应用场景

    测试仪凭借其高效、非破坏性的测试原理以及广泛的应用场景电气制造和检测领域发挥着重要作用。通过使用测试仪,企业可以及时发现并解决线圈质量问题,提高产品的可靠性和安全性。
    发表于 09-18 14:29

    [2K300适配OpenharmonyV4.1]根文件系统制作请教

    尝试更改制作文件格式为ext4,但是烧录时也失败了。 请问能否提供一Openharmony 根文件系统的相关资料,或者开源一Openharmony 2k300的相关资料?
    发表于 09-11 11:18

    浅谈国产异构双RISC-V+FPGA处理器AG32VF407的优势和应用场景

    技术手段提高系统的安全性和可靠性,适用于对安全要求较高的应用场景。 应用场景 边缘计算 : 物联网、智能城市等边缘计算场景中,异构双R
    发表于 08-31 08:32

    虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例

    虚拟机数据恢复环境: Linux操作系统服务器,EXT4文件系统。服务器中有数台KVM虚拟机。 虚拟机1:主数据库服务器 虚拟磁盘:系统盘(qcow2)+数据盘(raw) 文件系统
    的头像 发表于 08-07 13:33 470次阅读
    虚拟机数据恢复—KVM虚拟机被误删除的数据恢复案例

    opa859PD拉低的场景输出的范围是多少?

    输出却又在0.2mV以下,请帮忙确认贵司器件是否存在这样的一致性问题? 如果有问题,请问器件PD拉低的
    发表于 08-02 06:04

    实测分享,瑞芯微RK3588八国产处理器性能测评!确实“遥遥领先”!

    不同的图形渲染任务来评估GPU不同应用场景性能表现,并提供了可视化的结果和指标,方便用户选择和比较不同设备的性能。本次将同时测试RK3
    发表于 07-17 10:49

    Geekbench 6揭示9iPad Pro性能提升13%

    遵照预期,10版本因其额外的性能核心,得分明显高于9。即便如此,9M4仍较上一代M3提升13%,且
    的头像 发表于 05-14 11:20 648次阅读

    MediaTek天玑9300+ ,全大性能拉满,生成式AI能力更强

    设计,令其性能突破。这一次,9300+不仅提升全大CPU性能,还重新定义了生成式AI的端侧能力。只有手机SoC厂商引领软硬件和生态构建,生成式AI才能真正落地于智能手机。   全大
    的头像 发表于 05-08 11:02 3031次阅读
    MediaTek天玑9300+ ,全大<b class='flag-5'>核</b><b class='flag-5'>性能</b>拉满,生成式AI能力更强

    虚拟机数据恢复—EXT4文件系统KVM虚拟机数据恢复案例

    发行版本中。KVM使用Linux自身的调度器进行管理。 本案例中的服务器操作系统为Linux,文件系统为EXT4。操作系统上的部署的几台KVM虚拟机被删除,每台KVM虚拟机包含一个qcow2格式的磁盘
    的头像 发表于 04-17 14:22 385次阅读
    虚拟机数据恢复—<b class='flag-5'>EXT4</b>文件系统<b class='flag-5'>下</b>KVM虚拟机数据恢复案例

    攻克RISC-V芯片关键难点,赛昉科技斩获年度IP先锋奖

    近日,赛昉科技凭借RISC-V超大规模总线技术突破,一举斩获CRVA2023年度“IP先锋奖”。随着RISC-V向数据中心等高性能场景迈进,“”的要求被提上日程。与传统架构相同,由
    的头像 发表于 01-20 08:19 586次阅读
    攻克<b class='flag-5'>众</b><b class='flag-5'>核</b>RISC-V芯片关键难点,赛昉科技斩获年度IP先锋奖