<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Linux日志文件系統(tǒng)及性能分析(組圖)

          Linux日志文件系統(tǒng)及性能分析(組圖)

          作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

          6) 鍵分配(key Assignment)接口 當(dāng)把一個(gè)鍵分配給一個(gè)項(xiàng)時(shí),鍵分配接口就會(huì)被觸發(fā)。每一種項(xiàng)都有一個(gè)與其對(duì)應(yīng)的鍵分配方法。

          3.2 存儲(chǔ)層

          ReiserFS是以B+樹(shù)來(lái)存儲(chǔ)數(shù)據(jù)的,其結(jié)構(gòu)如圖:

          圖1:ReiserFS B+ 樹(shù)

          [upload=1]

          在B+樹(shù)中的各個(gè)結(jié)點(diǎn)中有一個(gè)稱為項(xiàng)(Item)的數(shù)據(jù)結(jié)構(gòu)。項(xiàng)是一個(gè)數(shù)據(jù)容器,一個(gè)項(xiàng)只屬于一個(gè)結(jié)點(diǎn),是結(jié)點(diǎn)管理空間的基本單位。如圖所示,一個(gè)項(xiàng)包括以下內(nèi)容:

          1) Item_body:項(xiàng)的數(shù)據(jù)域

          2) Item_key: 項(xiàng)的鍵值

          3) Item_offset:數(shù)據(jù)域的起點(diǎn)在結(jié)點(diǎn)中的偏移量

          4) Item_length: 數(shù)據(jù)域的長(zhǎng)度

          5) Item_Plugin_id:項(xiàng)接口ID。

          圖2: ReiserFS 項(xiàng)結(jié)構(gòu)

          [upload=2]

          ReiserFS設(shè)計(jì)了多種不同的項(xiàng)以存儲(chǔ)不同的數(shù)據(jù),主要有以下幾種:

          1) static_stat_data: 靜態(tài)統(tǒng)計(jì)數(shù)據(jù),包括文件的所有者,訪問(wèn)權(quán)限,創(chuàng)建時(shí)間,最近修改時(shí)間,鏈接數(shù)等

          2) cmpnd_dir_item: 包含各個(gè)目錄項(xiàng)

          3) extend_pointers: 指向一個(gè)盤(pán)區(qū)(extend)

          4) node_pointers: 指向一個(gè)結(jié)點(diǎn)

          5) bodies: 包含的是文件的小部分?jǐn)?shù)據(jù)

          3.3 ReiserFS日志

          與ext3 一樣,ReiserFS也有三種日志模式,即journal,ordered,writeback。同時(shí),ReiserFS引入了兩種日志優(yōu)化方法: copy-on-capture和steal-on-capture。copy-on-capture:當(dāng)一個(gè)事務(wù)要修改的塊在另一個(gè)未提交的事務(wù)中時(shí),就把這個(gè)塊復(fù)制一份,這樣這兩個(gè)事務(wù)就可以并發(fā)進(jìn)行了。steal-on-capture:當(dāng)一個(gè)塊被多個(gè)事務(wù)修改時(shí),只有最晚提交的那個(gè)事務(wù)才把這個(gè)塊實(shí)際寫(xiě)入文件系統(tǒng),其他事務(wù)都不寫(xiě)這個(gè)塊。

          四、XFS

          XFS 是一種高性能的64 位文件系統(tǒng),由SGI 公司為了替代原有的EFS 文件系統(tǒng)而開(kāi)發(fā)的。XFS 通過(guò)保持cache 的一致性、定位數(shù)據(jù)和分布處理磁盤(pán)請(qǐng)求來(lái)提供對(duì)文件系統(tǒng)數(shù)據(jù)的低延遲、高帶寬的訪問(wèn)。目前SGI已經(jīng)將XFS文件系統(tǒng)從IRIX移植到Linux。

          4.1 分配組(allocation groups)

          當(dāng)創(chuàng)建 XFS 文件系統(tǒng)時(shí),底層塊設(shè)備被分割成八個(gè)或更多個(gè)大小相等的線性區(qū)域(region),用戶可以將它們想象成塊(chunk)或者線性范圍(range),在 XFS 中,每個(gè)區(qū)域稱為一個(gè)分配組。分配組是唯一的,因?yàn)槊總€(gè)分配組管理自己的索引節(jié)點(diǎn)(inode)和空閑空間,實(shí)際上是將這些分配組轉(zhuǎn)化為一種文件子系統(tǒng),這些子系統(tǒng)透明地存在于 XFS 文件系統(tǒng)內(nèi)。有了分配組,XFS 代碼將允許多個(gè)線程和進(jìn)程持續(xù)以并行方式運(yùn)行,即使它們中的許多線程和進(jìn)程正在同一文件系統(tǒng)上執(zhí)行大規(guī)模 IO 操作。因此,將 XFS 與某些高端硬件相結(jié)合,將獲得高性能而不會(huì)使文件系統(tǒng)成為瓶頸。分配組在內(nèi)部使用高效的 B+樹(shù)來(lái)跟蹤主要數(shù)據(jù),具有優(yōu)越性能和極大的可擴(kuò)展性。

          4.2 日志記錄

          XFS 也是一種日志記錄文件系統(tǒng),它允許意外重新引導(dǎo)后的快速恢復(fù)。象 ReiserFS 一樣,XFS 使用邏輯日志;它不象 ext3 那樣將文字文件系統(tǒng)塊記錄到日志,而是使用一種高效的磁盤(pán)格式來(lái)記錄元數(shù)據(jù)的變動(dòng)。就 XFS 而言,邏輯日志記錄是很適合的;在高端硬件上,日志經(jīng)常是整個(gè)文件系統(tǒng)中爭(zhēng)用


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();