一個磁碟上有多個分割區是否可以並行寫入磁碟?

一個磁碟上有多個分割區是否可以並行寫入磁碟?

我有一個 500 GB 的磁碟,並試圖確定將它們分為三個分割區是否會對 Linux 的效能產生影響。即,如果有多個執行緒寫入同一磁碟中的不同分割區, - 如果第一個執行緒正在寫入磁碟 1 中的分割區 1 ,第二個執行緒是否必須等待寫入同一磁碟上的分割區 2 ?

答案1

磁碟是具有實體寫頭的實體設備(暫時忽略SSD)。它一次只能寫入一個位置。嘗試同時寫入的多個執行緒將相互競爭,並且實際上會使整體速度變慢,因為磁頭必須執行更多操作來尋找正確的位置。最快的寫入是在相鄰扇區中進行一次長連續的寫入。

SSD 沒有物理特性,但它們的 IO 速度確實有限制。添加線程不會改變潛在的瓶頸,因此不會提高速度。

這一切都假設給定線程已準備好以最大速度寫入。如果應用程式依賴某些其他資源(使用者輸入、網路),那麼新增執行緒可能會使其看起來寫入速度更快,因為這些執行緒正在執行更多工作來「排隊」要寫入磁碟的資料。

答案2

不,相反。當寫入彼此靠近的磁碟區域時,普通磁性硬碟的效能最高。考慮一個簡單的情況,其中兩個大檔案被寫入,一次在磁碟的幾乎相同區域,一次在非常遠的部分。在第一種情況下,書寫頭實際上可以連續移動,在後一種情況下,花費相當多的時間在兩個遠點之間移動書寫頭。

常見的檔案系統驅動程式已經經過高度優化,可以就何時何地繼續寫入做出合理的決定。如果您使用檔案系統驅動程式的兩個實例同時寫入磁碟的完全不同的區域,並且每個實例對未完成的寫入都有自己有限的視圖,那麼許多最佳化都會遺失。


即使是SSD(不會花更多時間來處理物理距離)在一次寫入大區域時也能表現得更好(僅跨越整個區塊,而不是在這裡進行小寫入,然後在那裡進行小寫入)。因此,即使在 SSD 的情況下,單一檔案系統的效能仍優於單獨分割區上的多個檔案系統。


如果您對分區的想法也來自於希望確保一個檔案系統已滿,不會阻止對其他檔案系統的寫入(為每個資料夾保留不同的最大空間) - 對於單一檔案系統也有解決方案。在這種情況下您要尋找的關鍵字是配額

相關內容