磁盘碎片
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() |
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/d/d0/FragmentationDefragmentation.gif/220px-FragmentationDefragmentation.gif)
在计算领域,檔案系统碎片(英語:File system fragmentation,或称磁碟碎片、檔案系统老化)是檔案系统将檔案内容非连续排列以方便就地修改其内容的結果,亦是碎片化的特例。磁碟碎片会增加磁碟磁头移动频率,即增加了寻道时间,会降低磁碟读写性能,进而影响操作系统及软件性能。另外,檔案系统不能承受无限制的碎片。对现有碎片的更正称为碎片重組,是将檔案和可用空间重新组织为连续区域的过程。
固态磁碟(SSD)不是真正的磁碟,也不是“旋转的”,所以没有檔案碎片问题。
原因
在分区上首次初始化檔案系统时,它只包含一些小的内部结构,其他区域则是一塊连续的可用空間,[a]意味着檔案系统能将新檔案放在分区任何位置。在檔案系统建立后的一段时间内,其檔案布局近乎最佳,当安装操作系统或软件或解包存档时,单独的檔案按顺序生成,因此相关檔案的位置接近。
刪除或截斷某檔案可能會騰空區塊;但加到檔案的新內容可能會放在分開區塊而非檔案結束處,因為該處可能已分配給另一份檔案,因此檔案會有新片段。随着时间過去,相同因素使可用空间以及频繁附加的檔案变碎。可用空间变短也意味檔案系统不能再为新檔案分配连续空间,而必须将它们拆碎。当儲存空間变满且無大量连续的可用空间时尤其如此。
簡單范例
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/0/03/File_system_fragmentation.svg/220px-File_system_fragmentation.svg.png)
磁碟中5份檔案甲、乙、丙、丁、戊按顺序连续儲存,每份檔案佔10區,(例子中每區大小不重要)剩余區域即是可用空間,因此可在檔案戊之后新增檔案。
類型
以下幾個層次可能會出現檔案系統碎片:
- 各個檔案中的碎片
- 可用空間碎片
- 在獨立但相關檔案間之訪問局部性減少
檔案碎片
![]() | 此章节尚無任何内容,需要扩充。 (2020年2月20日) |
可用空間碎片
![]() | 此章节尚無任何内容,需要扩充。 (2020年8月18日) |
檔案分散
檔案分割,也稱為相關檔案碎片,或者應用程序級(檔案)碎片,指缺乏引用的局部性(在存儲介質中)在相關檔案之間。
消極後果
對於消費級硬盤驅動器而言,磁碟碎片是個很嚴重的問題。因為增大差距在順序訪問速度和旋轉延遲(以及較小程度上尋道時間)之間其上文件系統通常放置。[1]因此,碎片是在文件系統的研究與設計的一個重要問題。碎片的遏制不僅很大程度上依賴於文件系統在磁碟上的格式,還取決於它的實現。[2]相對於机械磁碟,文件系統碎片对固態硬盤造成的性能影響较小,因為不涉及機械尋道時間。[3]但是,文件系統還需要儲存另一個元數據對於相對應的文件,每條元數據本身需要佔用空間,並且需要處理動力和處理器時間。如果達到碎片的最大極限,將會導致寫入請求失敗。
在簡單的文件系統基準測試中,往往省略了碎片因素,因為模拟現實的老化和碎片化是困難的。[4]
緩和
防止碎片
为了避免产生碎片,文件系统或操作系统会通过写入缓存区,将待写入的数据缓存在内存中,一段时间后才连续写入到磁碟中,避免直接写入大量小数据包的;又或者为一个文件对象分配一段连续的可用空间(如Extent技术)以方便连续写入。对于应用程序,如果在知道文件大小固定的情况下,也可以直接建立相应文件大小的空白文件作为预分配处理,虽然这不及由文件系统分配连续空闲空间直接和高效。
碎片重組
碎片重組是減少檔案碎片的過程,將檔案片段集合連接起來。部份碎片整理軟件會將經常按順序讀取的小文件放在一個目錄中。
固態磁碟採用快閃記憶技術,没有移動部件,運作方式與傳統硬碟不同,無須以重組碎片改善讀取速度,但故障前寫入次數有限,所以重組其檔案碎片弊多於利(除了緩解災難性故障)。
注釋
參考文獻
- ^ Kryder, Mark H. Future Storage Technologies: A Look Beyond the Horizon (PDF). Storage Networking World conference. Seagate Technology. 2006-04-03. (原始内容 (PDF)存档于17 July 2006).
- ^ McVoy, L. W.; Kleiman, S. R. Extent-like Performance from a UNIX File System (PostScript). Proceedings of USENIX winter '91. Dallas, Texas: Sun Microsystems, Inc.: 33–43. Winter 1991 [2006-12-14]. (原始内容存档于2007-02-21).
- ^ Hanselman, Scott. The real and complete story - Does Windows defragment your SSD?. Scott Hanselman's blog. 3 December 2014. (原始内容存档于2014-12-22).
- ^ Smith, Keith Arnold. Workload-Specific File System Benchmarks (PDF). Cambridge, Massachusetts: Harvard University. January 2001 [2006-12-14]. (原始内容 (PDF)存档于2004-11-17).