可能很多人已經遺忘了windows自帶的磁盤碎片管理程序。這個程序已經在windows中存在了很多年,筆者剛開始接觸電腦時用的win98上就自帶這個工具。
那時玩電腦還是個很新奇的事情,總想把電腦的速度弄得快一點。于是時不時的就開下這個磁盤碎片整理程序,聽到機械硬盤一陣嘎啦嘎啦響之后,所有的雜亂的“顏色”都被排列的整整齊齊的。有點小強迫癥的我就覺得非常舒服。
如今隨著NAND閃存越來越便宜,
固態硬盤(
SSD)已經成了電腦的標配了,在工業領域更是有
睿達Agrade等性價比很高的品牌。而大家現在對
固態硬盤特性都有所了解:讀寫速度快但使用壽命相對不如機械硬盤。在機械硬盤(HDD)的領域,有磁盤碎片整理(Defragment)這一據說能提高硬盤性能的功能,那么我們需要給
SSD做磁盤碎片整理么?
回答這個問題,我們想要大致了解下機械硬盤和固態硬盤結構上的區別:
機械硬盤的核心部件是由馬達、磁片、磁頭。磁片上可以以0、1的形式記錄數據,硬盤運行時馬達帶動磁片以每分鐘幾千的轉數高速旋轉,磁頭則在離磁片很近的位置進行讀寫操作。
由于數據是存儲在磁片的一個個扇區中,而民用級的硬盤轉速通常只有5400轉和7200轉兩種。看似速度很快了,但實際上磁頭在磁盤上讀取數據時還是有“尋道時間”的。雖然硬盤制造商可以通過提高盤片密度、磁頭數、緩存容量等來提高尋道效率。但受到機械結構的限制,目前最強的HDD連續讀取速度也沒有超過200MB/s級別,而隨機性能更是完全不能和SSD相比。
而當一塊空的HDD(機械硬盤)開始寫入數據,它們將被分散保存到整個磁盤的不同地方,而不是連續地保存在磁道中。隨著隨著硬盤日復一日地被寫入、刪除。磁盤中的空閑扇區會越來越零碎,復制進去的數據也會被分配到不連續的扇區里。如此下去,再去讀取這些數據的時候,磁頭就需要更加頻繁的來回移動,從而降低了磁盤的訪問速度。
而所謂磁盤碎片整理,就是通過windows自帶的磁盤優化工具或者第三方的磁盤整理程序。把這些不連續的數據和凌亂的文件重新整理,讓它們連續和有序的排列在扇區中。這樣的話理論上級可以提高磁盤的讀寫效率。
再來說說SSD的構造:
SSD是由NAND閃存+主控+緩存+PCB+接口等組成,由于數據傳輸和讀寫都是由電子信號來完成。SSD擺脫了馬達轉速和磁頭尋道這些機械瓶頸,性能自然就上來了。如今高性能的SSD的連續讀寫速度已經超過了2GB/s(這還是受制于PCI-E 3.0的速度限制,理論上速度還可以更快),在隨機讀寫速度上,更是把HDD遠遠的拋在后頭。
SSD不需要尋道時間,所以文件數據排列連續與否對讀取速度并沒有太大的提升。相反如果用機械硬盤的思路去幀率SSD內部數據反而會影響到SSD的壽命(SSD的寫入次數是有限的),而SSD寫入數據時也不是像機械硬盤那樣可以直接覆蓋,而是需要先擦除原來的數據再把新的數據寫進去。擦除的過程對于SSD來說耗時最久,所以針對機械硬盤優化的磁盤碎片整理程序并不適合SSD來使用。
那么我們要怎么去優化SSD呢?其實針對SSD的優化,軟硬件廠商已經統一給出了解決方案。那就是那就是Trim指令。當Windows識別到SSD并確認SSD支持Trim后,在刪除數據時,會不向硬盤發出刪除指令,而只使用Volume Bitmap來標記這里的數據已經刪除。
這相當于只是把要刪除的數據標記起來,再寫入數據的時候。系統會把Volume Bitmap標記出來的區塊直接寫入新的數據。這樣就可以大大提高效率。
在windows7之前版本的windows系統中,系統是區分不出SSD 和HDD的。所以如果你還在使用XP系統,最好不要用它的磁盤碎片整理功能來優化SSD硬盤。而當你在用win7時,系統會自動不對SSD的碎片整理功能;來到win8和win10系統操作系統在識別到SSD后,在默認開啟磁盤碎片整理的情況下,會把它和HDD一起放入到優化隊列中,對HDD運行碎片整理,而SSD執行Trim優化。
不過個人覺得,如今使用磁盤碎片整理的意義已經不大——在以前磁盤碎片整理后可以得到一些運行速度的提升。而現在的系統通常都被裝到SSD硬盤中,碎片整理對其速度提升已沒有那么明顯。
如今的機械硬盤都是幾個T級別大小,運行磁盤整理會非常耗時。整理以后對速度的提升也十分有限。而固態硬盤的主控中就自帶了SSD的擦除管理和回收機制,在機器空閑時主控會自動運行這些程序(當然不同品牌SSD整理機制和觸發條件不盡相同)。真的需要優化的情況下,我還是推薦使用廠家自主開發的優化程序。
所以除非你真的很有時間且有此習慣,否則磁盤碎片整理真的是沒啥必要了。