
我聽說 NTFS 壓縮會因額外的 CPU 使用而降低效能,但我讀到的報告稱,由於減少了磁碟讀取,它實際上可能會提高效能。 NTFS 壓縮究竟如何影響系統效能?
筆記:
- 我正在運行一台配備 5400 RPM 硬碟的筆記型電腦,我在其上執行的許多操作都受 I/O 限制。
- 該處理器是 AMD Phenom II,具有四核,運行頻率為 2.0 GHz。
- 系統定期使用碎片整理超碎片整理。
- 工作負載是讀寫混合的,讀取發生的頻率比寫入發生的頻率高一些。
- 要壓縮的檔案包括選定的個人文件子集(不是完整的主資料夾)和程序,包括幾個(要求較低的)遊戲和 Visual Studio(通常會受到 I/O 限制)。
答案1
我聽說 NTFS 壓縮會因額外的 CPU 使用而降低效能,但我讀到的報告稱,由於減少了磁碟讀取,它實際上可能會提高效能。
正確的。假設您的CPU 使用某種壓縮演算法,可以以C MB/s 壓縮並以D MB/s 解壓縮,並且您的硬碟具有寫入速度W 和讀取速度R。在以下情況下獲得效能增益:寫入,只要 D > R,讀取時就會獲得效能提升。在寫入情況下,這是一個極端的假設,因為 Lempel-Ziv 的演算法(在軟體中實現)具有不確定的壓縮率(儘管它可以受到有限字典大小的約束)。
NTFS 壓縮究竟如何影響系統效能?
嗯,正是依靠上面的不等式。只要您的 CPU 能夠維持高於 HDD 寫入速度的壓縮/解壓縮速率,您就應該體驗到速度提升。但是,這確實會對大文件產生影響,這些文件可能會出現嚴重碎片(由於演算法),或者根本不被壓縮。
這可能是由於 Lempel-Ziv 演算法隨著壓縮的進行而減慢(因為字典不斷增長,隨著位元的進入需要更多的比較)。在 Lempel-Ziv 演算法中,無論檔案大小如何,解壓縮幾乎總是相同的速率(因為字典只能使用基址 + 偏移量方案來定址)。
壓縮也會影響檔案的方式放置在磁碟上。預設情況下,單一「壓縮單元」是叢集大小的 16 倍(因此大多數 4 kB 叢集 NTFS 檔案系統將需要 64 kB 區塊來儲存檔案),但不會增加超過 64 kB。但是,這可能會影響磁碟上的碎片和空間需求。
最後要注意的是,延遲是另一個有趣的討論價值。雖然壓縮資料所需的實際時間確實會引入延遲,但當 CPU 時脈速度為千兆赫時(即每個時脈週期小於 1 ns),與硬碟尋道速率(即在毫秒量級,或數百萬個時鐘週期)。
要實際查看您是否會體驗到速度提升,您可以嘗試一些方法。第一個是使用基於 Lempel-Ziv 的壓縮/解壓縮演算法對您的系統進行基準測試。如果您獲得良好的結果(即 C > W 和 D > R),那麼您應該嘗試在磁碟上啟用壓縮。
從那裡,您可能想要對實際硬碟效能進行更多基準測試。一個真正重要的基準(就您的情況而言)是查看遊戲載入速度以及 Visual Studio 專案編譯速度。
TL,DR: 壓縮可能對於利用許多需要高吞吐量和低延遲的小檔案的檔案系統來說是可行的。由於效能和延遲問題,大檔案(並且應該)不受影響。
答案2
我在維基百科 NTFS 條目中對此進行了解釋:
NTFS 可以使用 LZNT1 演算法(LZ77 [23] 的變體)來壓縮檔案。檔案被壓縮為 16 簇塊。對於 4 kB 簇,檔案被壓縮為 64 kB 區塊。如果壓縮將 64 kB 資料減少到 60 kB 或更少,NTFS 會將不需要的 4 kB 頁面視為空稀疏檔案群集 — 它們不會被寫入。這不允許不合理的隨機存取時間。然而,大型可壓縮檔案會變得高度碎片化,因為每個 64 kB 區塊都會變成一個較小的碎片。 [24][25] Microsoft 不建議對超過 30 MB 的檔案進行壓縮,因為這會影響效能。
壓縮的最佳用途是用於重複的、很少寫入、通常按順序存取且本身未壓縮的檔案。日誌檔案就是一個理想的例子。壓縮小於4 kB 或已壓縮的檔案(如.zip 或.jpg 或.avi)可能會使它們更大且速度更慢。可能是以 4 kB 頁的形式調入和調出)。壓縮啟動時使用的系統檔案(例如驅動程式、NTLDR、winload.exe 或 BOOTMGR)可能會阻止系統正確啟動。
儘管對壓縮檔案的讀寫存取通常(但並非總是)透明[27],但Microsoft 建議避免對保存漫遊設定檔的伺服器系統和/或網路共用進行壓縮,因為它會為處理器帶來相當大的負載。
硬碟空間有限的單一使用者係統可以受益於小檔案的 NTFS 壓縮,從 4 kB 到 64 kB 或更多,取決於壓縮率。小於 900 位元組左右的檔案與目錄項目一起儲存在 MFT 中。
電腦中最慢的環節不是 CPU,而是硬碟的速度,因此 NTFS 壓縮可以在空間和(通常)速度方面更好地利用有限的、緩慢的儲存空間。 (這假設壓縮檔案片段是連續儲存的。)
我建議僅對壓縮至 64KB 或更小(即 1 塊)的檔案進行壓縮。否則,您的文件將包含許多 64K 或更少的部分。
MyDefrag 在碎片整理方面做得更好。
答案3
您的磁碟速度相當慢,所以您的問題確實有道理。 NTFS 壓縮是處理器密集型的,並且針對速度而非壓縮效率進行調整。
我希望您會看到讀取操作有(非常)小的改進。但是,當存取駐留在系統快取中的檔案時,效能將會受到影響,因為每次存取時都必須再次解壓縮該檔案。
當然,您會發現由於額外的壓縮,寫入操作會變慢。
在同一個 NTFS 磁碟上複製檔案需要解壓縮和壓縮,因此這些檔案受到的影響最大。
NTFS 壓縮也會顯著增加碎片,但這對於「典型」工作負載下的大多數「典型」計算機來說不是問題。
許多類型的文件,例如 JPEG 影像或視訊或 .zip 文件,基本上是不可壓縮的,因此這些文件的使用速度會較慢,並且不會節省任何空間。
小於一個磁碟區簇(通常為 4K)的檔案不會被壓縮,因為沒有增益。然而,在壓縮整個卷時,有時建議使用較小的簇大小。
建議對相對靜態的磁碟區或檔案進行 NTFS 壓縮。不建議將其用於系統檔案或使用者資料夾。
但由於硬體配置因電腦型號而異,具體取決於磁碟、匯流排、RAM 和 CPU,因此只有測試才能知道壓縮對您的電腦型號的確切影響。
答案4
今天看到這一點的任何人都應該意識到,就視頻遊戲而言,是的,即使是定期修補的遊戲,在驅動器或文件夾上啟用壓縮也可以減少加載時間,即使在當今速度較慢的CPU 上,甚至在SSD 上(除了大多數人沒有的最快的),但您需要定期進行碎片整理,我強烈建議購買完美的磁盤,一旦您使用其“智能主動”碎片整理,壓縮後,啟用其自動防止碎片功能,它將密切關注活動和自動優化以避免碎片,幾乎沒有性能影響(實際上最近在現代 Windows 上一直測試到 AMD 和 Intel 的舊第一代四核)
許多遊戲檔案壓縮得非常好,有些遊戲的檔案佔用了磁碟空間,儘管大部分都是空白的...我不久前壓縮的一個遊戲從其中一個資料夾中的6GB 壓縮到了16MB 以下.... ..(希望我開玩笑……談論浪費的空間和浪費的 I/O……)
不久前壓縮了一個好友的Steam 資料夾,花了4 天來壓縮(在4tb 驅動器上,開始時已滿3/4),完成後......他使用了驅動器總數的大約1/3 ,碎片整理又花了一天(但是,它一開始就支離破碎,因為他從來沒有對它做過碎片整理,永遠......儘管它上面有多個MMO......還有大量的steam / uplay / origin /等等遊戲...... )
不要壓縮你的圖片/圖像資料夾,它不會有任何好處,只會使在慢速系統上訪問它們的速度變慢(儘管在1/2 像樣的設備上甚至不會注意到.... ..)
自nt4 以來,我已經在每個系統上壓縮了我的驅動器,但是,有選擇地,我實際上會解壓縮文件夾,其中壓縮弊大於利,這是我們作為遊戲玩家、極客時想出的“最佳實踐”,“它“夥計們(之前是一個術語),而且,老實說,它仍然是真實的,我希望他們有一種更精細的方式來壓縮驅動器/數據,曾經有一種工具不是免費的,但價格實惠,可以讓你變得更好壓縮結果沒有壓縮任何不應該壓縮的數據...
無論如何,如果您1. 運行ccleaner 2. 從提升的命令提示符運行chkdsk /f(鍵入y 然後重新啟動並讓它運行檢查),甚至許多較舊的雙核系統實際上也會整體受益3. 壓縮驅動器。 4. 使用mydefrag 或更好的完美磁碟進行碎片整理,這需要時間.. 5. 罰款任何包含大文件或圖片/其他不能很好/根本壓縮的內容的文件夾,解壓縮文件夾或僅解壓縮文件,我的經驗在這裡是的,在這部分過程之後您很少需要進行碎片整理,但是最好檢查一下。
我明白為什麼有些人反對壓縮,但是,經過測試,如果正確使用SSD 或HDD,尤其是速度較慢的舊HDD 和SSD,正確使用壓縮不僅可以極大地幫助節省空間,而且可以提高性能,甚至是最舊的雙硬碟核心可以更快地處理平均壓縮/解壓縮週期,然後這些系統中的驅動器可以移動,經過測試,第一代和更便宜的舊設計固態硬碟可以從壓縮中受益,在大多數情況下不像較慢的硬碟那樣受益,但是,朋友有一台上網本,裡面有一個非常慢、難以更換的SSD,以及一個更容易更換、易於訪問的SSD 插槽,但是,愚蠢的事情是無法從添加的SSD 啟動,除非物理上移除另一個SSD... (可怕的BIOS,但是......對於這個單元來說,它實際上很好,比看起來更強大......在以這種方式安裝的慢速SSD之外,你必須將整個東西拆開才能得到它...... ...),壓縮該驅動器並在慢速SSD上安裝Windows和最基本的應用程式(如Office)實際上加快了速度,即使在讀/寫方面也是如此,因為它的CPU實際上最終等待該死的SSD..它不適合他安裝的更快的...我建議將引導程序放在內部SSD上,並將作業系統放在新增的上,但...他希望最終透過將其大部分用於頁面檔案來殺死這個愚蠢的東西。得離譜,就像我有USB3 閃存驅動器,具有更好的寫入速度......這在newegg/amazon 上都在出售......)
我強烈建議至少壓縮你的遊戲驅動器/資料夾...我的上帝,甚至可以在快速系統上製作差異!