久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

XFS,、ReiserFS 和 ext3 區(qū)別

 touchforu 2011-06-17
在安裝海蜘蛛2009版時大家都遇到文件系統(tǒng)選擇的問題,究竟要選擇那一個,,看了下面的分析后對號入座,。
XFS、ReiserFS 和 ext3 的性能
到目前為止,,選擇合適的下一代 Linux 文件系統(tǒng)一直很簡單,。那些只尋求原始性能的人通常傾向于使用 ReiserFS,而那些更關(guān)心數(shù)據(jù)完整性特性的人則首選 ext3,。然而,,隨著 XFS 的 Linux 版的發(fā)布,事情突然變得令人困惑,。尤其是,,對于 ReiserFS 是否依然是下一代文件系統(tǒng)性能方面的佼佼者,人們開始感到疑惑,。
最近,,我進行了一系列測試,試圖比較 XFS,、ReiserFS 和 ext3 在原始性能方面的優(yōu)劣,。在與您分享該結(jié)果之前,理解以下事實很重要:該結(jié)果只著重比較了在單處理器系統(tǒng)上,,系統(tǒng)負載較輕的情況下,,常規(guī)文件系統(tǒng)的性能趨 勢,它并不是衡量某一個文件系統(tǒng)是否比另一個文件系統(tǒng)“更好”的絕對尺度,。盡管如此,,我的結(jié)果應(yīng)該可以幫助您形成一些概念,那就是:哪個文件系統(tǒng)可能最適 于某個特定任務(wù),。再次聲明,,不應(yīng)該將我的結(jié)果視為結(jié)論性的;最好的測試總是:在每個文件系統(tǒng)上運行您的特定應(yīng)用程序,,以觀察它是如何執(zhí)行的,。
結(jié)果在測試中,我發(fā)現(xiàn) XFS 通常是相當(dāng)快的,。在大文件操作方面,,XFS 在所有測試中一直處于領(lǐng)先地位,,這是意料之中的,因為其設(shè)計者花了數(shù)年時間設(shè)計和調(diào)整它,,以便能夠極出色地完成此類任務(wù)。我還發(fā)現(xiàn) XFS 有一個單點性能缺陷:它刪除文件不是很快,;在這一方面,,ReiserFS 和 ext3 輕易地勝過了它。據(jù) Steve Lord(SGI 的文件系統(tǒng)軟件總工程師)說,,剛編寫完一個補丁來解決該問題,,并且不久將可以使用該補丁。
除此以外,,XFS 的性能非常接近 ReiserFS,,并在大多數(shù)測試指標(biāo)上都超過了 ext3。XFS 最佳表現(xiàn)之一在于:象 ReiserFS 一樣,,它不產(chǎn)生不必要的磁盤活動,。XFS 設(shè)法在內(nèi)存中緩存盡可能多的數(shù)據(jù),并且,,通常僅當(dāng)內(nèi)存不足時,,才會命令將數(shù)據(jù)寫到磁盤時。當(dāng)它將數(shù)據(jù)清倉(flushing)到磁盤時,,其它 IO 操作在很大程度上似乎不受影響,。相反,在 ext3(“data=ordered”缺省方式)下,,將數(shù)據(jù)清倉到磁盤時,,將導(dǎo)致許多額外尋道,甚至還會引起某種不必要的磁盤抖動 (thrashing)(取決于 IO 負載),。
我的性能和調(diào)整測試主要是關(guān)于將 RAM 磁盤中未壓縮的內(nèi)核源文件 tar 包(tarball)抽取到要測試的文件系統(tǒng),,然后遞歸地將新源文件樹復(fù)制到同一文件系統(tǒng)中的一個新目錄中。XFS 對這類任務(wù)執(zhí)行得很好,,盡管,,最初 XFS 性能比 ReiserFS 略差一點。然而,,在調(diào)整了測試 XFS 文件系統(tǒng)的 mkfs.xfs 和 mount 選項以后,,當(dāng)處理諸如在內(nèi)核源文件樹中的中等大小的文件時,XFS 執(zhí)行效率比 ReiserFS 略好一點,。但這不包括刪除操作,;至少目前,ReiserFS 和 ext3 刪除文件要比 XFS 快得多,。

性能總結(jié)
XFS 在哪些方面可以給您提供哪種性能,,對于這一點,,希望我的測試結(jié)果有助于您形成總的概念;我的測試結(jié)果顯示,,如果需要操作大文件,,XFS 文件系統(tǒng)是您最好的選擇。對于小文件和中等大小的文件,,如果您使用一些能夠增強性能的選項創(chuàng)建和掛裝 XFS 文件系統(tǒng)的話,,它可以與 ReiserFS 匹敵,有時甚至比 ReiserFS 更快,。在“data=journal”方式下的 ext3 提供了良好性能,,但是它很難獲得一致的性能數(shù)據(jù),原因在于,,ext3 將先前測試中的數(shù)據(jù)清倉到磁盤所使用的方式,,具有明顯的不規(guī)律性,這將導(dǎo)致某種磁盤抖動,。

XFS 設(shè)計
在 USENIX '96 上刊載的文章“Scalability in the XFS Filesystem”中(請參閱本文后面的參考資料),,SGI 工程師解釋:他們設(shè)計 XFS 的主要思想只有一個,那就是:“考慮大東西”,。確實,,XFS 的設(shè)計消除了傳統(tǒng)文件系統(tǒng)中的一些限制。現(xiàn)在,,讓我們研究 XFS 幕后一些有趣的設(shè)計特性,,正是這些設(shè)計特性使這一點成為可能。

分配組(allocation groups)簡介
當(dāng)創(chuàng)建 XFS 文件系統(tǒng)時,,底層塊設(shè)備被分割成八個或更多個大小相等的線性區(qū)域(region),。您可以將它們想象成“塊”(chunk)或者“線性范圍 (range)”,但是在 XFS 術(shù)語中,,每個區(qū)域稱為一個“分配組”,。分配組是唯一的,因為每個分配組管理自己的索引節(jié)點(inode)和空閑空間,,實際上,,是將這些分配組轉(zhuǎn)化為一種文 件子系統(tǒng),這些子系統(tǒng)正確地透明存在于 XFS 文件系統(tǒng)內(nèi),。

分配組與可伸縮性
那么,,XFS 到底為什么要有分配組呢?主要原因是,,XFS 使用分配組,,以便能有效地處理并行 IO。因為,,每個分配組實際上是一個獨立實體,,所以內(nèi)核可以 同時與多個分配組交互,。如果不使用分配組,XFS 文件系統(tǒng)代碼可能成為一種性能瓶頸,,迫使大量需求 IO 的進程“排隊”來使索引節(jié)點進行修改或執(zhí)行其它種類的元數(shù)據(jù)密集操作,。多虧了分配組,XFS 代碼將允許多個線程和進程持續(xù)以并行方式運行,,即使它們中的許多線程和進程正在同一文件系統(tǒng)上執(zhí)行大規(guī)模 IO 操作,。因此,將 XFS 與某些高端硬件相結(jié)合,,您將獲得高端性能而不會使文件系統(tǒng)成為瓶頸。分配組還有助于在多處理器系統(tǒng)上優(yōu)化并行 IO 性能,,因為可以同時有多個元數(shù)據(jù)更新處于“在傳輸中”,。

B+ 樹無處不在
分配組在內(nèi)部使用高效的 B+ 樹來跟蹤主要數(shù)據(jù),譬如空閑空間的范圍和索引節(jié)點,。實際上,,每個分配組使用 兩棵 B+ 樹來跟蹤空閑空間;一棵樹按空閑空間的大小排序來存儲空閑空間的范圍,,另一棵樹按塊設(shè)備上起始物理位置的排序來存儲這些區(qū)域,。XFS 擅長于迅速發(fā)現(xiàn)空閑空間區(qū)域,這種能力對于最大化寫性能很關(guān)鍵,。
當(dāng)對索引節(jié)點進行管理時,,XFS 也是很有效的。每個分配組在需要時以 64 個索引節(jié)點為一組來分配它們,。每個分配組通過使用 B+ 樹來跟蹤自己的索引節(jié)點,,該 B+ 樹記錄著特定索引節(jié)點號在磁盤上的位置。您會發(fā)現(xiàn) XFS 之所以盡可能多地使用 B+ 樹,,原因在于 B+ 樹的優(yōu)越性能和極大的可擴展性,。

日志記錄
當(dāng)然,XFS 也是一種日志記錄文件系統(tǒng),,它允許意外重新引導(dǎo)后的快速恢復(fù),。象 ReiserFS 一樣,XFS 使用邏輯日志,;即,,它不象 ext3 那樣將文字文件系統(tǒng)塊記錄到日志,而是使用一種高效的磁盤格式來記錄元數(shù)據(jù)的變動,。就 XFS 而言,,邏輯日志記錄是很適合的;在高端硬件上,,日志經(jīng)常是整個文件系統(tǒng)中爭用最多的資源,。通過使用節(jié)省空間的邏輯日志記錄,,可以將對日志的爭用降至最小。 另外,,XFS 允許將日志存儲在另一個塊設(shè)備上,,例如,另一個磁盤上的一個分區(qū),。這個特性很有用,,它進一步改進了 XFS 文件系統(tǒng)的性能。
象 ReiserFS 一樣,,XFS 只對元數(shù)據(jù)進行日志記錄,,并且在寫元數(shù)據(jù)之前,XFS 不采取任何專門的預(yù)防措施來確保將數(shù)據(jù)保存到磁盤,。這意味著,,使用 XFS(就象使用 ReiserFS)時,如果發(fā)生意外的重新引導(dǎo),,則最近修改的數(shù)據(jù)有可能丟失,。然而,XFS 日志有兩個特性使得這個問題不象使用 ReiserFS 時那么常見,。
使用 ReiserFS 時,,意外重新引導(dǎo)可能導(dǎo)致最近修改的文件中包含先前刪除文件的部分內(nèi)容。除了數(shù)據(jù)丟失這個顯而易見的問題以外,,理論上,,這還可能引起安全性威脅。相反,,當(dāng) XFS 日志系統(tǒng)重新啟動時,,XFS 確保任何未寫入的數(shù)據(jù)塊在重新引導(dǎo)時 置零。因此,,丟失塊由空字節(jié)來填充,,這消除了安全性漏洞 ― 這是一種好得多的方法。
現(xiàn)在,,關(guān)于數(shù)據(jù)丟失問題本身,,該怎么辦呢?通常,,使用 XFS 時,,該問題被最小化了,原因在于以下事實:XFS 通常比 ReiserFS 更頻繁地將暫掛元數(shù)據(jù)更新寫到磁盤,,尤其是在磁盤高頻率活動期間,。因此,如果發(fā)生死鎖,那么,,最近元數(shù)據(jù)修改的丟失,,通常比使用 ReiserFS 時要少。當(dāng)然,,這不能徹底解決不及時寫數(shù)據(jù)塊的問題,,但是,更頻繁地寫元數(shù)據(jù)也確實促進了更頻繁地寫數(shù)據(jù),。

延遲分配
研究一下 延遲分配這個 XFS 獨有的特性,,然后我們將結(jié)束關(guān)于 XFS 的技術(shù)概述。正如您可能知道的,,術(shù)語 分配(allocation)是指:查找空閑空間區(qū)域并用于存儲新數(shù)據(jù)的過程,。
XFS 通過將分配過程分成兩個步驟來處理。首先,,當(dāng) XFS 接收到要寫入的新數(shù)據(jù)時,,它在 RAM 中記錄暫掛事務(wù),并只在底層文件系統(tǒng)上保留適當(dāng)空間,。然而,盡管 XFS 為新數(shù)據(jù)保留了空間,,但 它卻沒有決定將什么文件系統(tǒng)塊用于存儲數(shù)據(jù),,至少現(xiàn)在還沒決定。XFS 進行拖延,,將這個決定延遲到最后可能的時刻,,即直到該數(shù)據(jù)真正寫到磁盤之前作出。
通過延遲分配,,XFS 贏得了許多機會來優(yōu)化寫性能,。到了要將數(shù)據(jù)寫到磁盤的時候,XFS 能夠以這種優(yōu)化文件系統(tǒng)性能的方式,,智能地分配空閑空間,。尤其是,如果要將一批新數(shù)據(jù)添加到單一文件,,XFS 可以在磁盤上分配一個單一,、相鄰區(qū)域來儲存這些數(shù)據(jù)。如果 XFS 沒有延遲它的分配決定,,那么,,它也許已經(jīng)不知不覺地將數(shù)據(jù)寫到了多個非相鄰塊中,從而顯著地降低了寫性能,。但是,,因為 XFS 延遲了它的分配決定,所以,它能夠一下子寫完數(shù)據(jù),,從而提高了寫性能,,并減少了整個文件系統(tǒng)的碎片。
在性能上,,延遲分配還有另一個優(yōu)點,。在要創(chuàng)建許多“短命的”臨時文件的情況下,XFS 可能根本不需要將這些文件全部寫到磁盤,。因為從未給這些文件分配任何塊,,所以,也就不必釋放任何塊,,甚至根本沒有觸及底層文件系統(tǒng)元數(shù)據(jù),。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多