0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在眾核場(chǎng)景下EXT4該如何應(yīng)對(duì)才能發(fā)揮性能

SSDFans ? 來源:SSDFans ? 2024-12-30 11:35 ? 次閱讀

一、背景和問題

1. EXT4日志的問題

隨著計(jì)算機(jī)系統(tǒng)加載數(shù)百個(gè)CPU內(nèi)核,文件系統(tǒng)的可擴(kuò)展性得到進(jìn)一步強(qiáng)調(diào)。因此本文主要定位服務(wù)器中廣泛使用的Ext4文件系統(tǒng)在做日志記錄時(shí)的可擴(kuò)展性問題。EXT4日志有兩個(gè)嚴(yán)重的缺點(diǎn);串行提交并提交原始頁面緩存條目。

串行提交:在EXT4中,日志提交是嚴(yán)格的串行活動(dòng)。只有在前面的日志提交完成后,它才能提交后面的日志事務(wù)。因此,在EXT4中,一次最多只能有一個(gè)正在運(yùn)行的事務(wù),最多只能有一個(gè)提交事務(wù)。圖1展示了串行提交的一個(gè)示例:

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

將前面的fsync()和后面的fsync()的日志事務(wù)分別標(biāo)記為Tx1和Tx2。JBD線程僅在完成提交Tx1后才開始提交Tx2(t3時(shí)刻)。

提交原始頁面緩存條目:EXT4使用原始頁面緩存條目將更新的內(nèi)容提交給磁盤。它不會(huì)為日志提交創(chuàng)建更新的副本。如果關(guān)聯(lián)的頁面緩存條目被提交到磁盤,則需要更新文件系統(tǒng)狀態(tài)的應(yīng)用程序?qū)⒈蛔枞?。這種情況也叫做事務(wù)沖突,會(huì)嚴(yán)重影響EXT4的日志記錄可擴(kuò)展性。

2. EXT4日志可擴(kuò)展性問題的詳細(xì)分析

本文通過EXT4執(zhí)行串行日志提交和BarrierFS執(zhí)行并發(fā)日志操作來探索文件系統(tǒng)日志中的可伸縮性平靜,最終確認(rèn)了影響EXT4 和 BarrierFS 性能可擴(kuò)展性的四個(gè)主要組件;事務(wù)沖突、串行刷新、事務(wù)鎖定間隔的長(zhǎng)度和復(fù)合日志的合并程度。

(1) 事務(wù)沖突

事務(wù)沖突技術(shù)值定義為試圖修改DMA下的日志塊的文件操作數(shù)量。盡管 EXT4 的影子分頁功能可以解決事務(wù)沖突,但 EXT4 日志記錄仍然存在大量事務(wù)沖突。

即使BarrierFS同時(shí)提交多個(gè)事務(wù),它也會(huì)使用單獨(dú)的刷新命令刷新每個(gè)事務(wù)。由于每個(gè)日志提交都會(huì)在存儲(chǔ)設(shè)備上產(chǎn)生單獨(dú)的刷新,因此BarrierFS 的并發(fā)日志設(shè)計(jì)的好處是體現(xiàn)不出來的。此外,當(dāng)正在運(yùn)行的事務(wù)試圖在flush下修改日志塊時(shí),它們都會(huì)發(fā)生沖突并被阻塞。這種提交事務(wù)的更高并發(fā)性導(dǎo)致幾乎 100% 的文件操作在所有線程中都遭受事務(wù)沖突。

(2) 事務(wù)鎖定

并發(fā)日志中可伸縮性失敗的主要原因之一是延長(zhǎng)的鎖定間隔。

對(duì)EXT4,事務(wù)鎖定間隔的長(zhǎng)度可以忽略不計(jì),因?yàn)殒i定期只是等待未完成的文件操作完成的時(shí)間,一般來說是很短的。

BarrierFS可以在正在運(yùn)行的事務(wù)擺脫沖突之前過早地將其置于鎖定狀態(tài),直到所有未完成的文件操作完成并且所有沖突都得到解決。因此,一個(gè)正在運(yùn)行的事務(wù)在 BarrierFS 中停留在鎖定狀態(tài)的時(shí)間間隔比在 EXT4 中長(zhǎng)得多。

兩個(gè)文件系統(tǒng)鎖定時(shí)間的對(duì)比如圖2:

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

(3) 有限合作

影響文件系統(tǒng)日志性能可伸縮性的關(guān)鍵因素是日志事務(wù)的合并程度——日志事務(wù)中文件系統(tǒng)操作的數(shù)量。

EXT4 日志的嚴(yán)格串行性質(zhì)實(shí)際上有助于增加復(fù)合日志的合并程度。當(dāng)日志提交正在進(jìn)行時(shí),所有與傳入文件操作相關(guān)的更新都被插入到正在運(yùn)行的事務(wù)中。因此,隨著線程數(shù)量的增加,合并機(jī)會(huì)會(huì)增加。

而對(duì)于BarrierFS,由于它過早地將正在運(yùn)行的事務(wù)置于鎖定狀態(tài),從而減少了將多個(gè)文件操作合并到單個(gè)日志事務(wù)中的機(jī)會(huì)。

二、設(shè)計(jì)

作者通過以下幾個(gè)技術(shù)點(diǎn)實(shí)現(xiàn)了一個(gè)支持高并發(fā)的日志文件系統(tǒng)—CJFS。

1. 雙線程日志

作者將日志提交過程分為兩個(gè)階段,即提交階段和刷新階段,并為每個(gè)階段分配單獨(dú)的線程,即提交線程和刷新線程。提交線程負(fù)責(zé)向存儲(chǔ)發(fā)出日志事務(wù)的寫請(qǐng)求。完成后,存儲(chǔ)設(shè)備會(huì)向主機(jī)發(fā)送中斷,通知請(qǐng)求服務(wù)已完成。刷新線程負(fù)責(zé)使日志塊和提交塊持久化。一旦中斷到來,刷新線程被喚醒,并向存儲(chǔ)發(fā)出刷新命令,使日志塊和提交塊持久化。

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

如圖3所示,通過分離提交線程和刷新線程,CJFS 可以在不等待前面的日志(231cf050-c3e8-11ef-9310-92fbcf53809c.png)提交完成的情況下提交后續(xù)事務(wù)23356946-c3e8-11ef-9310-92fbcf53809c.png

2. 多版本影子頁

為了解決事務(wù)沖突,作者提出了多版本影子分頁。當(dāng)提交線程啟動(dòng)日志提交時(shí),它會(huì)創(chuàng)建日志事務(wù)中所有頁面的影子副本。在提交日志事務(wù)時(shí),提交線程使用事務(wù)中每一頁的影子副本來將日志事務(wù)傳輸?shù)酱鎯?chǔ)設(shè)備,而不是使用原始頁面。由于日志模塊使用影子頁面進(jìn)行日志提交,后續(xù)的文件操作可以更新原始頁面。

3. 機(jī)會(huì)性合并

由于影子頁面的數(shù)量有限,如果所有預(yù)分配的影子頁面都用于保存日志,仍然會(huì)發(fā)生事務(wù)沖突。如果發(fā)生事務(wù)沖突,正在運(yùn)行的事務(wù)將進(jìn)入鎖定狀態(tài),并且所有修改文件系統(tǒng)狀態(tài)的后續(xù)文件操作都將被阻止。為了解決這個(gè)問題,作者提出了機(jī)會(huì)合并。當(dāng)所有未完成的文件操作完成時(shí),提交線程檢查是否存在任何沖突。如果存在沖突,提交線程會(huì)將鎖定狀態(tài)的事務(wù)返回到運(yùn)行狀態(tài)并被阻塞。當(dāng)提交線程被阻塞后,正在運(yùn)行的事務(wù)可以繼續(xù)容納新傳入的日志塊。

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

如圖四展示了機(jī)會(huì)合并的一個(gè)例子,23606ae2-c3e8-11ef-9310-92fbcf53809c.png在兩個(gè) LOCKED 狀態(tài)之間的時(shí)間段內(nèi)處于RUNNING狀態(tài)。在運(yùn)行事務(wù)的狀態(tài)變?yōu)镽UNNING狀態(tài)后,所有被阻塞等待日志句柄的掛起文件操作都被發(fā)布日志句柄。借助這樣的機(jī)會(huì)合并,CJFS 可以將大量文件操作合并到正在運(yùn)行的事務(wù)中,從而提高文件系統(tǒng)操作的并發(fā)性。

4. 復(fù)合刷新

為了使 CJFS 的日志以完全并發(fā)的方式工作,提交線程和刷新線程都應(yīng)該能夠以并發(fā)的方式處理關(guān)聯(lián)的任務(wù)。針對(duì)EXT4和BarrierFS的序列化刷新問題,作者提出了一種復(fù)合刷新的概念:當(dāng)刷新線程即將發(fā)送刷新命令時(shí),它會(huì)檢查是否存在任何后續(xù)提交事務(wù),如果后續(xù)提交事務(wù)不存在,則發(fā)送刷新命令;如果存在接下來的提交事務(wù),它會(huì)改為發(fā)送cache barrier命令(控制閃存設(shè)備保證請(qǐng)求處理順序的命令),從而將持久化事務(wù)的任務(wù)委托給后面的事務(wù)提交請(qǐng)求。通過cache barrier命令,存儲(chǔ)控制器可以確保各個(gè)事務(wù)的日志塊按順序持久化。

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

圖5說明了復(fù)合刷新的工作原理。當(dāng)flush線程傳輸完事務(wù)231cf050-c3e8-11ef-9310-92fbcf53809c.png后,flush線程開始傳輸事務(wù)2395531a-c3e8-11ef-9310-92fbcf53809c.png,而不是調(diào)用flush來刷新事務(wù)231cf050-c3e8-11ef-9310-92fbcf53809c.png。當(dāng)刷新線程完成傳輸事務(wù)2395531a-c3e8-11ef-9310-92fbcf53809c.png時(shí),它發(fā)現(xiàn)沒有其他正在提交的事務(wù)正在運(yùn)行。然后,它調(diào)用flush使事務(wù)231cf050-c3e8-11ef-9310-92fbcf53809c.png和事務(wù)2395531a-c3e8-11ef-9310-92fbcf53809c.png持久化。

三、實(shí)驗(yàn)效果

1. 實(shí)驗(yàn)設(shè)置

作者將CJFS與BarrierFS、SpanFS [15]、Vanilla EXT4 和帶有 Fast-Commit的EXT4進(jìn)行了比較。同時(shí)使用三個(gè)基準(zhǔn)測(cè)試集進(jìn)行測(cè)試:用于郵件服務(wù)器的varmail,用于文件服務(wù)器的dbench,以及MySQL上的 OLTP-Insert。測(cè)試平臺(tái)為40核服務(wù)器(兩個(gè)Intel Xeon Gold 6230處理器和512 GB DRAM)和三星970 Pro SSD(MLC閃存,NVMe)進(jìn)行實(shí)驗(yàn)。

2. 實(shí)驗(yàn)結(jié)果

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

圖6

可以看到在多種測(cè)試集及其對(duì)應(yīng)的多種數(shù)據(jù)更新場(chǎng)景下,CJFS都能達(dá)到最好的多核性能擴(kuò)展效果。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    285

    瀏覽量

    19917
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    505

    瀏覽量

    19701

原文標(biāo)題:在眾核場(chǎng)景下,EXT4該如何應(yīng)對(duì)才能發(fā)揮性能呢?

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    模塊化儀器的技術(shù)原理和應(yīng)用場(chǎng)景

    。 二、應(yīng)用場(chǎng)景 自動(dòng)化測(cè)試系統(tǒng):模塊化儀器自動(dòng)化測(cè)試系統(tǒng)中發(fā)揮著重要作用,可以適應(yīng)多種測(cè)試需求,提高測(cè)試效率和準(zhǔn)確性。它們通常由軟件驅(qū)動(dòng),便于集成到測(cè)試系統(tǒng)中,實(shí)現(xiàn)自動(dòng)化測(cè)量和報(bào)告。 通信與衛(wèi)星領(lǐng)域
    發(fā)表于 11-28 15:09

    汽車?yán)走_(dá)回波發(fā)生器的技術(shù)原理和應(yīng)用場(chǎng)景

    的波束并向前傳播,以模擬真實(shí)的雷達(dá)工作環(huán)境。應(yīng)用場(chǎng)景 自動(dòng)駕駛系統(tǒng)的開發(fā)和測(cè)試:自動(dòng)駕駛系統(tǒng)的開發(fā)和測(cè)試過程中,汽車電子雷達(dá)回波發(fā)生器可以模擬各種交通場(chǎng)景的目標(biāo)回波,評(píng)估雷達(dá)系統(tǒng)
    發(fā)表于 11-15 14:06

    服務(wù)器數(shù)據(jù)恢復(fù)——Ext4文件系統(tǒng)umount失敗的數(shù)據(jù)恢復(fù)案例

    塊組:Ext4文件系統(tǒng)的全部空間被劃分為若干個(gè)塊組,每個(gè)塊組結(jié)構(gòu)基本上相同。 塊組描述符表:每個(gè)塊組都對(duì)應(yīng)一個(gè)塊組描述符,這些塊組描述符統(tǒng)一放在文件系統(tǒng)的前部,稱為塊組描述符表。每個(gè)塊組描述符大小
    的頭像 發(fā)表于 11-13 13:25 ?303次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)——<b class='flag-5'>Ext4</b>文件系統(tǒng)umount失敗的數(shù)據(jù)恢復(fù)案例

    航空插頭連接器:這些工業(yè)場(chǎng)景的必備選擇!

    工業(yè)自動(dòng)化和精密制造日益普及的今天,連接器的選擇對(duì)設(shè)備的穩(wěn)定運(yùn)行至關(guān)重要。航空插頭連接器,以其獨(dú)特的性能優(yōu)勢(shì),特定工業(yè)場(chǎng)景發(fā)揮著不可替
    的頭像 發(fā)表于 10-27 09:33 ?346次閱讀
    航空插頭連接器:這些工業(yè)<b class='flag-5'>場(chǎng)景</b><b class='flag-5'>下</b>的必備選擇!

    TAS6424E-Q1什么場(chǎng)景bit4會(huì)置為1?

    測(cè)量clk頻率都是正確的;請(qǐng)問什么場(chǎng)景bit4會(huì)置為1;其他三個(gè)clk正常,但數(shù)據(jù)線一直為0,是否會(huì)觸發(fā)bit置為1;
    發(fā)表于 09-27 07:06

    脈沖式線圈測(cè)試儀的技術(shù)原理和應(yīng)用場(chǎng)景

    測(cè)試儀憑借其高效、非破壞性的測(cè)試原理以及廣泛的應(yīng)用場(chǎng)景,電氣制造和檢測(cè)領(lǐng)域發(fā)揮著重要作用。通過使用測(cè)試儀,企業(yè)可以及時(shí)發(fā)現(xiàn)并解決線圈質(zhì)量問題,提高產(chǎn)品的可靠性和安全性。
    發(fā)表于 09-18 14:29

    [2K300適配OpenharmonyV4.1]根文件系統(tǒng)制作請(qǐng)教

    嘗試更改制作文件格式為ext4,但是燒錄時(shí)也失敗了。 請(qǐng)問能否提供一Openharmony 根文件系統(tǒng)的相關(guān)資料,或者開源一Openharmony 2k300的相關(guān)資料?
    發(fā)表于 09-11 11:18

    淺談國(guó)產(chǎn)異構(gòu)雙RISC-V+FPGA處理器AG32VF407的優(yōu)勢(shì)和應(yīng)用場(chǎng)景

    技術(shù)手段提高系統(tǒng)的安全性和可靠性,適用于對(duì)安全要求較高的應(yīng)用場(chǎng)景。 應(yīng)用場(chǎng)景 邊緣計(jì)算 : 物聯(lián)網(wǎng)、智能城市等邊緣計(jì)算場(chǎng)景中,異構(gòu)雙R
    發(fā)表于 08-31 08:32

    虛擬機(jī)數(shù)據(jù)恢復(fù)—KVM虛擬機(jī)被誤刪除的數(shù)據(jù)恢復(fù)案例

    虛擬機(jī)數(shù)據(jù)恢復(fù)環(huán)境: Linux操作系統(tǒng)服務(wù)器,EXT4文件系統(tǒng)。服務(wù)器中有數(shù)臺(tái)KVM虛擬機(jī)。 虛擬機(jī)1:主數(shù)據(jù)庫服務(wù)器 虛擬磁盤:系統(tǒng)盤(qcow2)+數(shù)據(jù)盤(raw) 文件系統(tǒng)
    的頭像 發(fā)表于 08-07 13:33 ?473次閱讀
    虛擬機(jī)數(shù)據(jù)恢復(fù)—KVM虛擬機(jī)被誤刪除的數(shù)據(jù)恢復(fù)案例

    opa859PD拉低的場(chǎng)景輸出的范圍是多少?

    輸出卻又在0.2mV以下,請(qǐng)幫忙確認(rèn)貴司器件是否存在這樣的一致性問題? 如果有問題,請(qǐng)問器件PD拉低的
    發(fā)表于 08-02 06:04

    實(shí)測(cè)分享,瑞芯微RK3588八國(guó)產(chǎn)處理器性能測(cè)評(píng)!確實(shí)“遙遙領(lǐng)先”!

    不同的圖形渲染任務(wù)來評(píng)估GPU不同應(yīng)用場(chǎng)景性能表現(xiàn),并提供了可視化的結(jié)果和指標(biāo),方便用戶選擇和比較不同設(shè)備的性能。本次將同時(shí)測(cè)試RK3
    發(fā)表于 07-17 10:49

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

    遵照預(yù)期,10版本因其額外的性能核心,得分明顯高于9。即便如此,9M4仍較上一代M3提升13%,且
    的頭像 發(fā)表于 05-14 11:20 ?651次閱讀

    MediaTek天璣9300+ ,全大性能拉滿,生成式AI能力更強(qiáng)

    設(shè)計(jì),令其性能突破。這一次,9300+不僅提升全大CPU性能,還重新定義了生成式AI的端側(cè)能力。只有手機(jī)SoC廠商引領(lǐng)軟硬件和生態(tài)構(gòu)建,生成式AI才能真正落地于智能手機(jī)。 ? 全大
    的頭像 發(fā)表于 05-08 11:02 ?3049次閱讀
    MediaTek天璣9300+ ,全大<b class='flag-5'>核</b><b class='flag-5'>性能</b>拉滿,生成式AI能力更強(qiáng)

    虛擬機(jī)數(shù)據(jù)恢復(fù)—EXT4文件系統(tǒng)KVM虛擬機(jī)數(shù)據(jù)恢復(fù)案例

    發(fā)行版本中。KVM使用Linux自身的調(diào)度器進(jìn)行管理。 本案例中的服務(wù)器操作系統(tǒng)為L(zhǎng)inux,文件系統(tǒng)為EXT4。操作系統(tǒng)上的部署的幾臺(tái)KVM虛擬機(jī)被刪除,每臺(tái)KVM虛擬機(jī)包含一個(gè)qcow2格式的磁盤
    的頭像 發(fā)表于 04-17 14:22 ?387次閱讀
    虛擬機(jī)數(shù)據(jù)恢復(fù)—<b class='flag-5'>EXT4</b>文件系統(tǒng)<b class='flag-5'>下</b>KVM虛擬機(jī)數(shù)據(jù)恢復(fù)案例

    攻克RISC-V芯片關(guān)鍵難點(diǎn),賽昉科技斬獲年度IP先鋒獎(jiǎng)

    近日,賽昉科技憑借RISC-V超大規(guī)??偩€技術(shù)突破,一舉斬獲CRVA2023年度“IP先鋒獎(jiǎng)”。隨著RISC-V向數(shù)據(jù)中心等高性能場(chǎng)景邁進(jìn),“”的要求被提上日程。與傳統(tǒng)架構(gòu)相同,由
    的頭像 發(fā)表于 01-20 08:19 ?586次閱讀
    攻克<b class='flag-5'>眾</b><b class='flag-5'>核</b>RISC-V芯片關(guān)鍵難點(diǎn),賽昉科技斬獲年度IP先鋒獎(jiǎng)