題 我應該對我的SSD進行碎片整理嗎?


我剛剛知道應該“永遠不要對你的SSD進行碎片整理”。但我不知道這是不是真的。

我相信Windows 10會自動安排在我的SSD上完成碎片整理,但我取消了它。是否會導致之前進行碎片整理的任何問題?

SSD仍然沒有分區,因為我無法在“我的電腦”文件夾中看到SSD驅動器,只能在系統硬件管理器中看到。在SSD上安裝Windows應該採取哪些正確的步驟(這是我的第一個SSD)?


118
2017-11-28 15:23


起源


“永不對您的SSD進行碎片整理”的建議已經過時,而且來自SSD較慢且寫入耐久性比現代SSD更為有限的時候。現代SSD往往受IOPS限制,而碎片整理的文件系統需要更少的I / O. - David Schwartz
到@DavidSchwartz點, 寫入/刪除量 需要自發殺死現代SSD是非常高的。除非您正在處理大量信息,否則即使您執行傳統的defrags,您的SSD也可能比其他許多組件的使用壽命更長。 - DanK
你為什麼要對SSD進行碎片整理?碎片整理的目的是使文件在磁盤上連續,因此讀取頭不必遍歷整個地方(這需要時間,因為它涉及物理移動)來讀取文件。我不是專家,但AFAIK SSD是固態和隨機訪問。所有訪問都需要同一時間,因此文件塊的分佈方式無關緊要。 - jamesqf
可能重複 為什麼不能對固態硬盤進行碎片整理? - Raystafarian
正如Ajedi32所指出的,關於這兩個問題的建議完全相反。這應該會影響複製的方向。如果關於另一個問題的建議現在被認為是錯誤的,那麼讀者登陸那裡的唯一方法就是找到這個問題的答案,如果這個問題與這個問題重複。 - fixer1234


答案:


讓Windows完成它的工作。 每月一次,它會進行真正的完整碎片整理,也在SSD上,以優化內部元數據。

簡而言之,是的,Windows有時會對SSD進行碎片整理,是的,   重要的是智能和適當地對SSD進行碎片整理,以及   是的,Windows對於如何處理您的SSD非常聰明。

以下是微軟的回复:

如果啟用了卷快照,Storage Optimizer將每月對SSD進行一次碎片整理。這是設計和必要的,因為緩慢   volsnap複製碎片SSD卷上的寫入性能。它的   也有點誤以為碎片不是問題   在SSD上。如果SSD過於分散,您可以訪問最大文件   碎片化(當元數據不能代表任何更多文件時)   片段)當你嘗試編寫/擴展a時會導致錯誤   文件。此外,更多文件片段意味著要處理更多元數據   在讀/寫文件時,可能會導致性能降低。

就Retrim而言,此命令應按計劃運行   在dfrgui UI中指定。由於這種方式,Retrim是必要的   TRIM在文件系統中處理。由於性能的不同   響應TRIM的硬件,TRIM由異步處理   文件系統。刪除文件或以其他方式釋放空間時   文件系統將要處理的修剪請求排隊。限制   窺視資源使用情況此隊列可能只會增長到最大數量   修剪請求。如果隊列具有最大大小,則傳入的TRIM請求可以   被丟棄。這沒關係,因為我們會定期通過和   使用存儲優化器進行Retrim。 Retrim在a完成   應避免命中最大TRIM請求隊列的粒度   刪除TRIM的大小。

所以在SSD上安裝Windows並忘記它。 Windows將自行完成所有工作。


132
2017-11-28 16:55



有時我們會嘲笑微軟這麼愚蠢。但有時我只是對一些Windows元素的思考程度感到驚訝。 - BlueWizard
然而,AFAIK Linux / EXT根本不需要這樣做。 - spraff
在EXT中碎片保持最小但仍然可以在特定用例中發生,至少在Ext3中: en.wikipedia.org/wiki/Ext3#Disadvantages - Bret
EXT變體會碎片化並失去性能。任何說不然的人都在兜售Linux優勢所在。來源:我為它實現了一個驅動程序,它確實如此。 - imallett
@Jonas Dralle:雖然我想知道什麼是“窺視資源使用”應該是什麼。聽起來含糊不清色情:-) - jamesqf


我剛剛知道應該“永遠不要對你的SSD進行碎片整理”。但我不知道這是不是真的。

一點點知識是危險的。永遠不會對SSD進行碎片整理可能是一個好主意 如果 你的系統完全不知道SSD是什麼 - 比如Windows XP。如果SSD是脆弱的雪花,可能會在正常使用的嚴酷熱量下磨損並融化 - 我有一個詳細的答案,為什麼這不是真的。它是 挺難的 在正常使用中“磨損”一個驅動器。忘掉這一點可能很方便。

讓我們考慮一下,如果你的應用程序正在殺死SSD,甚至做大量寫入, 像Spotify一樣,人們會翻轉。編寫操作系統的人通常很聰明。

我在引用 這篇博文 來自斯科特漢塞爾曼的其餘部分答案很重要。 Magicandre的回答也引用了這一點,但我從中汲取了不同的教訓。值得一讀的細節。我對我如何表達信息採取了一些自由。我從這開始

我認為主要的誤解是大多數人都有一個非常過時的磁盤\文件佈局模型,以及SSD的工作原理。

SSD確實碎片化,這些碎片需要 跟踪。從根本上講,碎片整理SSD有助於您的工作 文件系統 有效地運行,即使它與旋轉的防銹驅動器不同。我引用的帖子指出,卷快照在沒有碎片整理的情況下會很慢。

SSD也具有TRIM的概念。雖然TRIM(retrim)是一個獨立於碎片的概念,但它仍然由Windows Storage Optimizer子系統處理,並且從用戶的角度來看,該計劃由相同的UI管理。

TRIM很好。修剪 節省寫作 因為它是一種在不擦除塊的情況下將塊標記為讀取的機制,並根據需要擦除它們。

無論誰告訴你從不對驅動器進行碎片整理,都不知道現代操作系統是什麼 專為SSD設計 以及必要的內務管理流程。

雖然很容易假設你知道的更好,但在這種情況下,編寫操作系統的人已經為你優化了一些東西。保持冷靜,讓Windows對驅動器進行碎片整理。


48
2017-11-29 07:52



我認為通過提及邏輯塊地址與物理塊地址可以大大改善這個答案。對SSD進行碎片整理是不可能的,由於閃存映射,導致順序邏輯地址的文件系統級過程仍然會導致數據散佈在物理磁盤周圍,這是正常的,因為SSD是隨機訪問的。 - Ben Voigt
說實話,這是一個我仍然沒有理解的概念。我相信對此的全面處理將成為一個很棒的答案 我的一個問題 我的測試帳戶中有一些代表,我很樂意將其作為獎勵。 - Journeyman Geek♦


為了完整起見:

碎片取決於 文件系統(FS),而不是在光盤或操作系統上。

這意味著您的問題的答案實際上不需要要求Windows *; SSD是特殊情況 - 它的工作方式與普通光盤不同。

FS是一種在光盤上組織文件的方法。最常見的Windows格式是 NTFS 和 FAT32。 Linux上最常用的FS是 ext3/ext4,但還有很多其他(zfsxfsjfsReiserFSbtrfs, 和更多)。

光盤分為 。你可以把它想像成一個可以寫一些數據的長磁帶。在光盤上寫入內容時,可以使用這些塊。顯然,您希望將相關文件彼此相鄰寫入,並將單個文件寫入單個塊中,這樣您就不必跳過磁帶。當事情四處散亂時,這就是我們所說的 碎片。碎片整理將它們組織起來。

顯然,你如何組織事物(FS)決定了它們的組織程度(是否存在碎片)。如果您從一開始就組織文件,則不會出現碎片。這就是某些文件系統中發生的事情(例如 ext 家庭)。這些文件系統動態地組織你的文件(在寫入之前),這樣你就不必對它們進行碎片整理,除非在特殊情況下沒有任何其他選擇,只是為了引入一點混亂。

有關的更多信息 ext4 以及它如何防止碎片,你可以參考 這一頁

現在SSD工作方式不同;這不是錄音帶。您可以隨處獲得即時訪問權限。碎片整理的重點在於整齊地整理文件,這樣就不必跳轉了。沒有辦法在SSD中跳轉。你不在乎是否必須前後來到磁帶的另一端;沒有磁帶。

但是,還有其他優化SSD的方法。看到 這個話題 為了澄清。

*幾乎;文件系統選擇與OS相關。大多數Linux用戶使用與Windows或OS X用戶不同的FS。


23
2017-11-29 10:00



正是這樣。無論存儲介質如何,都會在FS級別上發生碎片。有些媒體比其他媒體更受其影響,但總有一些影響,並且它不會因為你有SSD而消失。 - Dmitry Grigoryev
主要區別在於Ext3和FAT vs Ext4和NTFS;但即便如此,應用程序,操作系統甚至硬件 做貢獻,往往顯著。 Windows按照使用順序組織啟動時使用的文件,例如 - 允許大多數啟動使用塊讀取而不是搜索。您可以調用該碎片整理 - 除了在FS級別進行碎片整理(減少文件碎片)之外,它還會對文件組進行“碎片整理”,以便以FS無法真正幫助的方式優化訪問。您可以想像許多類似的優化,例如移動DLL靠近EXE。 - Luaan
有很多不同的層面都以自己的方式存在。例如,條帶化是一種有意破碎的方法,可以提高性能。如果HDD具有可以同時從多個盤片讀取的多個頭,則HDD的物理組織也可以使用它。固態硬盤不需要旋轉盤片並移動頭部進行搜索,但它們仍然具有IOPS限制 - 而且就目前的SSD速度而言,這通常比原始帶寬更重要。 SSD尋求不再足夠快以使帶寬飽和。碎片化是基本問題的一小部分 - 緩存。 - Luaan
@Luaan:沒有“SSD尋求”這樣的東西。我想你實際上是在談論每命令處理開銷。 - Ben Voigt
@BenVoigt我認為Luaan意味著即使在SSD上,非整合文件仍然需要更長時間才能讀取。沒有尋求延遲,但SSD上的順序讀取和隨機讀取之間存在顯著差異。 - user1306322


現有的答案很棒,但我有一些東西可以補充它們......
一世 整理 我的SSD和 禁用自動TRIM,但原因完全不同於:

  1. 我希望能夠 恢復文件 或者當我意外刪除某些內容時分區。
    不,它不會經常發生,但是它發生的次數很少,但是能夠恢復我本來能夠在硬盤驅動器上恢復的東西是非常令人沮喪的, 即使我在刪除後立即嘗試恢復它們

  2. 一世 擴展,縮小甚至移動分區 大約每隔幾個月,對文件進行碎片整理和整合會使這項操作更快,風險更小。您認為現在可以信任分區管理器,但是到2015年12月,我在普通移動/調整大小操作時遇到錯誤(損壞)。更聰明的分區管理器試圖避免在任何損壞完成之前運行嚴重碎片化的捲(通常,儘管並非總是成功)。

  3. 我用的是Linux 有時候,我已經被大約一年前的NTFS卷的腐敗所灼傷。這不是因為碎片特定,而是看到它甚至無法處理 不分段 文件正確,我處於防御狀態並試圖盡可能地呈現盡可能清晰的捲(即便如此,我大部分時間都避免寫入)。

關於#2和#3的悲傷部分是,那些沒有親眼看到這些問題的人總是認為我很瘋狂並且正在全力以赴,或者我的系統必須以某種方式被打破。但是我已經在多個系統上重複了這些,並且作為寫過他的人 擁有 NTFS讀者,我對文件系統和內核編程知道一兩件事......以NTFS為中心。所以當我看到它們時,我知道錯誤。沒有人相信我,但我總是警告人們,因為我親眼看到這些事情發生了 - 所以,如果你搞亂分區或者根本不使用Linux,我建議你保持驅動器的碎片整理。因人而異。

哦,不要忘了每隔一段時間就手動運行一次TRIM  需要恢復任何東西。雖然如果我說實話,我還沒有看到任何好處......


6
2017-12-01 12:02



非常好,出於同樣的原因,特別是對於攝影而言,碎片整理(甚至“零”)閃存驅動器是一個很好的程序。連續文件更容易恢復,甚至部分恢復。除了節省時間,如果操作系統足夠聰明,您還將受益於預取(預讀)。 SSD的速度往往比內存慢(但並非總是如此)。 - mckenzm
實際上,“你的Linux使用Linux並使用它讀取/寫入NTFS文件系統”,這不是你的Linux建議嗎?實際上並非“如果你根本使用Linux”?在SSD上使用帶有ext4或XFS的Linux是非常安全的。 (就FAT而言,如果需要,你可以為數據交換創建一個FAT分區。) - mattdm
@mattdm:是的,我想。 (很奇怪,我以為我已經回復了這個......) - Mehrdad


對SSD進行碎片整理可以促進最低尋址內存塊的早期故障。

看到: http://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead

“即使使用耗損均衡算法在閃存上均勻分佈寫入,所有單元最終都會失敗或變得不適合執行任務。   當發生這種情況時,它們將退役並替換為已分配的閃存   來自SSD過度配置的區域。這個備用的NAND確保了   驅動器的用戶可訪問容量不受消耗戰的影響   肆虐其細胞。“

“傷亡人數最終會超過傷亡人數   驅動器的補償能力,留下未解答的問題。多少   寫道需要嗎?最後您的數據會發生什麼變化?做SSD   寫作堆積起來會失去任何表現或可靠性嗎?“


-3
2017-11-29 23:14



這是個 極端 驅動器寫入並覆蓋大量數據的情況。這與常規的例行碎片整理有什麼關係? - Journeyman Geek♦
不,這不是一個極端的案例......它是一個測試,顯示產品的固有或最終的弱點。測試旨在顯示限制。 - jwzumwalt


每次重寫時,SSD上的每個單元都會變慢。磁盤通過跟踪寫入哪些單元格來隱藏磨損,並首先寫入少量使用的單元格。碎片整理意味著在許多單元上進行大量重寫,因此它會磨損SSD。由於不必經常移動伺服臂,因此通過碎片整理可以提高HD的性能,但是隨著數據的隨機放置,SSD不會減慢速度。


-6
2017-11-28 18:26



沒有downvote,但有興趣看到這方面的來源。 - brichins
你很困惑 寫放大 同 磨平。 SSD在寫入之前必須擦除,但它們會擦除比寫入更大的塊。這意味著單個寫入可能會執行多次寫入以對數據進行混洗並釋放塊以進行擦除。隨著更多的寫入發生,這個過程變得更加複雜。這是寫放大。有各種方法可以解決這個問題,如TRIM和過度配置。磨損均衡會分散您寫入的細胞,因此它們不會完全失敗。 - Schwern