Performance
開發人員建構最快的文件系統是什麼?
我正在組裝一個 Linux 機器,它將充當持續集成建構伺服器;我們將主要建構 Java 的東西,但我認為這個問題適用於任何編譯語言。
我應該使用哪些文件系統和配置設置?(例如,我知道我不需要時間!)建構伺服器將花費大量時間讀寫小文件,並掃描目錄以查看哪些文件已被修改。
更新:在這種情況下,數據完整性是一個低優先級;它只是一台建構機器……最終的工件將被壓縮並存檔在其他地方。如果建構機器上的文件系統損壞並失去所有數據,我們可以擦除並重新映像;建構將像以前一樣繼續執行。
使用 ext4fs 作為基本文件系統,並帶有一些加速選項,例如
noatime,data=writeback,nobh,barrier=0,commit=300
然後聯合在其上安裝一個 tmpfs ramdisk,以便在建構期間寫入的文件獲得 ramdisk 的好處。更改建構過程以在建構結束時將生成的二進製文件從 tmpfs 中移出,或者在解除安裝之前將 tmpfs 合併回 ext4fs。
最快的文件系統?tmpfs 已安裝在可用 RAM 之外,並
noatime
設置了。僅當您有一個檢查建構原始碼樹所需的所有內容的過程(因為重新啟動時 tmpfs 文件系統的內容將消失)並且源和對象適合您可用 RAM 的合理角落時,這才是可行的(有足夠的剩餘來執行你的編譯器和連結器而無需交換)。那就是說你不能為了速度而打敗RAM。