為什麼清空磁碟空間可以加快電腦速度?

為什麼清空磁碟空間可以加快電腦速度?

我看了很多視頻,現在對計算機的工作原理有了更好的了解。我更好地理解了 RAM 是什麼、揮發性和非揮發性記憶體以及交換過程。我也理解為什麼增加 RAM 可以提高電腦速度。

我不明白為什麼清理磁碟空間可以提高電腦速度。可以?為什麼會這樣呢?這是否與尋找可用空間來保存東西有關?或移動東西來留出足夠長的連續空間來保存東西?我應該在硬碟上保留多少可用空間?

答案1

在這裡,我偶然寫了一本書。先喝點咖啡。

為什麼清空磁碟空間可以加快電腦速度?

它不會,至少它本身不會。這是一個非常常見的神話。它之所以成為一個常見的神話,是因為硬碟填滿通常與傳統上發生的其他事情同時發生。可以放慢您的計算機速度。 SSD效能確實趨於隨著驅動器填滿而降級,但這是一個相對較新的問題,是 SSD 所特有的,對於普通用戶來說並不明顯。一般來說,可用磁碟空間低只是一個問題紅鯡魚

例如,類似的事情:

  • 文件碎片。文件碎片一個問題††,但缺乏可用空間,而絕對是其中之一許多影響因素,不是唯一的其原因。這裡有一些要點:

    • 文件被碎片化的可能性是不是與驅動器上剩餘的可用空間量有關。它們與驅動器上最大連續可用空間塊的大小(例如可用空間的“孔”)有關,其中可用空間量碰巧設定了上限。它們也與文件系統如何處理文件分配有關(更多內容見下文)。考慮:如果驅動器已滿 95%,且所有可用空間都位於一個連續區塊中,那麼對新檔案進行碎片化的可能性為 0% †††(對附加檔案進行碎片化的可能性與可用空間無關)。已滿 5% 但資料均勻分佈在驅動器上的驅動器很可能會出現碎片。

    • 請記住文件碎片僅在存取碎片檔案時影響效能考慮:您有一個良好的、經過碎片整理的驅動器,但其中仍然有很多可用的「漏洞」。一個常見的場景。一切都進展順利。但最終,您會遇到沒有剩餘大塊可用空間的情況。您下載了一部巨大的電影,文件最終變得嚴重碎片化。這不會減慢您的計算機速度。您的所有應用程式檔案以及以前完好的檔案不會突然變得支離破碎。這可能會使電影加載時間較長(儘管典型的電影比特率與硬碟讀取速率相比非常低,很可能不會被注意到),並且它可能會影響 I/O 密集型性能,而電影正在加載,但除此之外沒有任何變化。

    • 雖然檔案碎片確實是一個問題,但通常作業系統和硬體級緩衝和快取可以減輕影響。延遲寫入、預讀等策略預取器在Windows等中,都有助於減少碎片的影響。你一般不會實際上經歷重大影響,直到碎片變得嚴重(我什至敢說,只要您的交換文件沒有碎片,您可能永遠不會注意到)。

  • 搜尋索引是另一個例子。假設您開啟了自動索引,且作業系統無法正常處理此問題。隨著您將越來越多的可索引內容(文件等)保存到電腦中,索引可能需要越來越長的時間,並且可能開始影響電腦運行時的感知速度(I/O 和 CPU 使用率) 。這與可用空間無關,而是與您擁有的可索引內容的數量有關。然而,可用空間的耗盡與儲存更多內容密切相關,因此會產生錯誤的連接。

  • 防毒軟體。類似於搜尋索引範例。假設您設定了防毒軟體來對驅動器進行後台掃描。隨著可掃描內容越來越多,搜尋會佔用更多 I/O 和 CPU 資源,可能會幹擾您的工作。同樣,這與您擁有的可掃描內容的數量有關。更多的內容通常等於更少的可用空間,但缺乏可用空間並不是原因。

  • 已安裝的軟體。假設您安裝了許多在電腦啟動時載入的軟體,從而減慢了啟動時間。這種速度變慢的原因是正在載入大量軟體。但是,安裝的軟體會佔用硬碟空間。因此,在發生這種情況的同時,硬碟可用空間也會減少,並且很容易再次建立錯誤連線。

  • 許多其他類似的例子,當放在一起時,出現將缺乏可用空間與較低的性能密切相關。

上面說明了這是一個常見神話的另一個原因:雖然缺乏可用空間並不是速度變慢的直接原因,但有時會卸載各種應用程式、刪除索引或掃描的內容等(但並非總是如此;超出了本範圍)回答)增加由於與剩餘可用空間量無關的原因再次性能。但這自然也釋放了硬碟空間。因此,「更多的可用空間」和「更快的電腦」之間可以再次建立明顯的(但錯誤的)聯繫。

考慮:如果您的電腦因安裝了大量軟體等而運行緩慢,並且您將硬碟準確地複製到更大的硬碟,然後擴展分割區以獲得更多可用空間,則電腦不會神奇地加速。載入相同的軟體,相同的檔案仍然以相同的方式碎片化,相同的搜尋索引器仍然運行,儘管有更多的可用空間,但沒有任何變化。

這是否與尋找保存內容的記憶體空間有關?

不,不是的。這裡有兩件非常重要的事情值得注意:

  1. 您的硬碟不會到處尋找放置東西的地方。你的硬碟太蠢了沒什麼。它是一個大的尋址儲存區塊,盲目地將東西放在作業系統告訴它的地方並讀取它要求的任何內容。現代驅動器具有複雜的快取和緩衝機制,旨在根據我們隨著時間的推移獲得的經驗來預測作業系統將要求什麼(某些驅動器甚至知道其上的檔案系統),但本質上,請考慮您的驅動器只是一個大而愚蠢的存儲磚,偶爾會有額外的性能功能。

  2. 您的作業系統也不會搜尋放置東西的位置。沒有「尋找」。為了解決這個問題付出了很多努力,因為它對檔案系統效能至關重要。資料在驅動器上的實際組織方式取決於您的檔案系統。例如,FAT32(舊的 DOS 和 Windows PC)、NTFS(後來的 Windows)、HFS+(Mac)、ext4(某些 Linux)等等。甚至「檔案」和「目錄」的概念也只是典型檔案系統的產物——硬碟不知道所謂「檔案」的神秘野獸。詳細資訊超出了本答案的範圍。但本質上,所有常見檔案系統都有追蹤磁碟機上可用空間位置的方法,因此在正常情況下(即檔案系統運作狀況良好),無需搜尋可用空間。例子:

    • NTFS有一個主文件表,其中包括特殊文件$Bitmap等,以及描述驅動器的大量元資料。本質上,它會追蹤下一個空閒區塊的位置,以便新檔案可以直接寫入空閒區塊,而不必每次都掃描磁碟機。

    • 另一個例子,外部4有所謂的“點陣圖分配器”,對 ext2 和 ext3 的改進,基本上可以幫助它直接確定空閒區塊在哪裡,而不是掃描空閒區塊清單。 Ext4 還支援“延遲分配”,即作業系統在將資料寫入磁碟機之前在 RAM 中緩衝數據,以便更好地決定將資料放在哪裡以減少碎片。

    • 還有很多其他的例子。

或移動東西來形成足夠長的連續空間來保存東西?

不會。文件最終會變得支離破碎。

「移動物品以形成足夠長的連續空間來保存物品」的過程稱為整理碎片。寫入文件時不會發生這種情況。當您執行磁碟碎片整理程式時會發生這種情況。至少在較新的 Windows 上,這種情況會按計劃自動發生,但絕不會透過寫入檔案來觸發。

能夠避免像這樣移動東西是檔案系統效能的關鍵,也是碎片發生的原因以及碎片整理作為單獨步驟存在的原因。

我應該在硬碟上保留多少可用空間?

這是一個比較棘手的問題,這個答案變成了一本小書。

經驗法則:

  • 對於所有類型的驅動器:

    • 最重要的是,留出足夠的可用空間你有效地使用你的電腦。如果您的工作空間不足,您將需要更大的驅動器。
    • 許多磁碟碎片整理工具都需要最低限度的可用空間(我認為 Windows 需要 15% 最壞情況)才能工作。
    • 為其他作業系統功能留出空間。例如,如果您的電腦沒有大量實體 RAM,並且您使用動態大小的頁面檔案啟用了虛擬內存,則您需要為頁面檔案的最大大小留出足夠的空間。或者,如果您有一台處於休眠模式的筆記型電腦,則需要足夠的可用空間來儲存休眠狀態檔案。像這樣的東西。
  • SSD特定:

    • 為了獲得最佳的可靠性(以及較小程度的性能),SSD 需要一些可用空間,而無需贅述,它們將這些空間用於在驅動器周圍傳播數據,以避免不斷寫入同一位置(這會磨損它們) 。這種留下自由空間的概念稱為過度配置。這一點很重要,但在許多SSD中,強制超額配置的空間已經存在。也就是說,驅動器的容量通常比向作業系統報告的容量多幾十 GB。低端驅動器通常需要您手動離開未分區的空間,但對於具有強制 OP 的驅動器,你不需要留下任何可用空間。這裡需要注意的重要一點是超額配置的空間通常只取自未分割的空間。因此,如果您的分割區佔用了整個磁碟機並且您在其上留下了一些可用空間,則不會總是數數。很多時候,手動預留空間需要您將分割區縮小到小於磁碟機的大小。有關詳細信息,請查看 SSD 的用戶手冊。 TRIM 和垃圾收集等也有影響,但這些不屬於本答案的範圍。

就我個人而言,當剩餘約 20-25% 的可用空間時,我通常會選擇更大的驅動器。這與效能無關,只是當我到達這一點時,我預計我可能很快就會耗盡資料空間,是時候購買更大的磁碟機了。

比查看可用空間更重要的是確保在適當的情況下啟用計劃的碎片整理(而不是在 SSD 上),這樣您就永遠不會達到嚴重影響您的地步。同樣重要的是避免誤導性的調整並讓你的作業系統做它的事情,例如不要停用 Windows 預取器SSD 除外), ETC。


最後還有一件事值得一提。這裡的其他答案之一提到SATA的半雙工模式可以防止同時讀寫。雖然確實如此,但這過於簡單化了,而且與這裡討論的效能問題大多無關。簡而言之,這意味著資料不能雙向傳輸在電線上同時。然而,SATA 有一個相當複雜的規格涉及微小的最大區塊大小(我認為線路上每個區塊大約 8kB)、讀取和寫入操作佇列等,並且不排除在讀取正在進行時對緩衝區進行寫入、交錯操作等。

發生的任何阻塞都是由於爭奪實體資源造成的,通常可以透過大量快取來緩解。 SATA 的雙工模式在這裡幾乎完全不相關。


「放慢速度」是一個廣義的術語。在這裡,我用它來指 I/O 綁定的事物(例如,如果您的電腦坐在那裡處理數字,硬碟的內容沒有影響),或者 CPU 綁定並與切線相關的事物競爭。使用率高(例如防毒軟體掃描大量文件)。

††固態硬碟受到碎片的影響,因為順序訪問速度通常比隨機訪問更快,儘管 SSD 沒有面臨與機械設備相同的限制(即使如此,由於磨損均衡等原因,缺乏碎片也不能保證順序訪問,正如 James Snell 所言)評論中註明)。然而,在幾乎所有一般使用場景中,這都不是問題。對於載入應用程式、啟動電腦等操作,SSD 碎片造成的效能差異通常可以忽略不計。

†††假設檔案系統正常,不會故意將檔案碎片化。

答案2

另外納撒尼爾·米克的解釋對於 HDD,SSD 的情況有所不同。

SSD對分散的資料不敏感,因為SSD上任何地方的存取時間都是相同的。典型的 SSD 存取時間為 0.1 毫秒,而典型的 HDD 存取時間為 10 至 15 毫秒。然而,它對已寫入 S​​SD 的資料很敏感

與可以覆蓋現有資料的傳統 HDD 不同,SSD 需要完全空閒的空間來寫入資料。這是透過稱為「修剪」和「垃圾收集」的函數來完成的,這些函數會清除標記為已刪除的資料。垃圾收集與 SSD 上一定量的可用空間結合使用效果最佳。通常建議保留 15% 到 25% 的可用空間。

如果垃圾收集無法及時完成其工作,則在每次寫入作業之前都會清理資料應寫入的空間。這會使每次寫入操作的時間加倍,並降低整體效能。

這是一篇優秀的文章這解釋了修剪和垃圾收集的功能

答案3

傳統硬碟內部有一個旋轉的金屬盤,各個位元和位元組實際上都在其中進行編碼。當資料新增至磁碟片時,磁碟控制器首先將其儲存在磁碟的外部。隨著新資料的添加,空間被最後移向磁碟內部。

考慮到這一點,當磁碟填滿時,有兩種影響會導致磁碟效能下降:尋道時間旋轉速度

尋道時間

為了存取數據,傳統硬碟必須將讀/寫頭物理移動到正確的位置。這需要時間,稱為「尋道時間」。製造商公佈了他們的磁碟的尋道時間,通常只有幾毫秒。這聽起來可能不多,但對電腦來說,這就是永恆。如果您必須讀取或寫入很多不同的磁碟位置來完成一項任務(這很常見),這些尋道時間加起來可能會導致明顯的延遲或等待時間。

幾乎空的驅動器的大部分資料都位於或接近同一位置,通常位於讀/寫頭其餘位置附近的外邊緣。這減少了跨磁碟查找的需要,大大減少了查找所花費的時間。幾乎已滿的磁碟機不僅需要更頻繁地在磁碟上進行尋道並進行更大/更長的尋道運動,而且可能難以將相關資料保留在同一磁區中,從而進一步增加磁碟尋道。這就是所謂的支離破碎的數據。

釋放磁碟空間可以改善尋道時間,因為碎片整理服務不僅可以更快地清理碎片文件,還可以將文件移至磁碟外部,從而縮短平均尋道時間。

旋轉速度

硬碟以固定速率旋轉(電腦上通常為 5400rpm 或 7200rpm,伺服器上通常為 10000rpm 甚至 15000rpm)。它還需要在驅動器上固定數量的空間(或多或少)來儲存單位元。對於以固定轉速旋轉的磁碟,磁碟外部的線性速率將比磁碟內部的線性速率更快。這意味著靠近磁碟外緣的位元以比靠近磁碟中心的位元更快的速率移過讀取頭,因此讀取/寫入頭可以比靠近磁碟外邊緣的讀取/寫入頭更快地讀取或寫入位。

幾乎空的驅動器將花費大部分時間訪問光碟較快外緣附近的位元。幾乎已滿的驅動器將花費更多時間訪問光碟較慢的內部部分附近的位元。

同樣,清空磁碟空間可以透過允許碎片整理服務將資料移至磁碟外部(讀取和寫入速度更快)來提高電腦速度。

有時,光碟對於讀取頭來說實際上移動得太快,並且這種影響會減弱,因為靠近外邊緣的扇區將交錯......亂序寫入,以便讀取頭可以跟上。但總體而言,這是成立的。

這兩種影響都歸結為磁碟控制器首先將資料分組到磁碟的較快部分,直到必要時才使用磁碟的較慢部分。隨著磁碟填滿,越來越多的時間花在磁碟較慢的部分。

這些效果也適用於新驅動器。在其他條件相同的情況下,新的 1TB 硬碟比新的 200GB 硬碟更快,因為 1TB 儲存的位元更靠近,並且不會那麼快地填滿到內部磁軌。然而,嘗試使用這些資訊來指導購買決策幾乎沒有幫助,因為製造商可能使用多個碟片來達到1TB 大小,較小的碟片將1TB 系統限制為200GB,軟體/磁碟控制器限制將1TB 碟片限制為僅200GB空間,或將具有部分完成/有缺陷的碟片的硬碟從具有大量壞磁區的 1TB 硬碟出售為 200GB 硬碟。

其他因素

這裡值得注意的是,上述影響相當小。電腦硬體工程師花費大量時間研究如何最大限度地減少這些問題,而硬碟緩衝區、Superfetch 快取和其他系統等都致力於最大限度地減少問題。上一個健康系統有足夠的可用空間,您甚至可能不會注意到。此外,SSD 具有完全不同的效能特性。然而,影響確實存在,隨著驅動器填滿,電腦確實會變慢。在一個不良在磁碟空間非常低的系統中,這些影響可能會造成磁碟抖動情況,即磁碟不斷地在碎片資料中來回查找,釋放磁碟空間可以解決此問題,從而帶來更顯著和顯著的改進。

此外,向磁碟添加資料意味著某些其他操作(例如索引或 AV 掃描以及碎片整理過程)正在執行更多的在後台工作,即使它的運行速度與以前相同或接近。

最後,磁碟效能是巨大的如今 PC 整體效能的指標...比 CPU 速度更大的指標。即使磁碟吞吐量的小幅下降也常常等同於 PC 效能的實際感知整體下降。由於硬碟效能並沒有真正跟上 CPU 和記憶體改進的步伐,這一點尤其明顯。十多年來,7200 RPM 磁碟一直是桌面標準。傳統的旋轉磁碟比以往任何時候都更成為電腦的瓶頸。

答案4

一台磁碟空間非常小的計算機,在旋轉的機械硬碟上,在相當長的時間內,通常會隨著檔案碎片的增加而變得更慢。碎片增加意味著讀取速度變慢 –非常在極端情況下很慢。

一旦電腦處於這種狀態,釋放磁碟空間並不能真正解決問題。您還需要對磁碟進行碎片整理。在電腦處於這種狀態之前,釋放空間不會加速電腦的速度;它只會減少碎片成為問題的可能性。

這僅適用於具有旋轉機械硬碟的計算機,因為碎片對 SSD 讀取速度的影響可以忽略不計。

相關內容