Windows 11本月可選更新明顯改善SMB壓縮算法
數日前,微軟為Windows 11 用戶推出了可選更新KB5016691,以及為Windows Server 2022 用戶推出了KB5016693。可選更新KB5016691 所提供的內容將會整合到下月補丁星期二發布的累積更新中,其中部分新功能已經可以嚐鮮使用。
KB5016691 和KB5016693 兩個可選更新在其更新日誌中,均提及對Server Message Block (SMB) 壓縮的改進,但是日誌中並未提及任何細節。幸運的是,微軟的內德·派爾(Ned Pyle)在一篇專門的博文中談到了SMB 壓縮的所有增強功能。
在客戶端-服務器環境中使用SMB 壓縮允許管理員、用戶和應用通過網絡傳輸內容時對文件進行壓縮。這種方式的優點在於明顯減少帶寬的佔用,但由於通過網絡傳輸文件之前和之後需要執行壓縮和解壓縮過程,因此該方式的代價就是增加CPU 佔用率。
在KB5016691 和KB5016693 出現之前,SMB 壓縮的行為方式很奇怪。基本上,它使用了一種默認算法,該算法僅嘗試壓縮文件的前500MiB(注意:1MB = 1000KB 但1MiB = 102 4K B),任何小於此閾值的內容都不會被壓縮,即使它具備“可壓縮”的特性。
還有一個額外注意的地方。在讀取文件的前500MiB 期間,如果算法檢測到可執行壓縮程序的文件容量在100MiB 以下,那麼則根本不會嘗試壓縮文件的其餘部分。
想像以下,你想要傳輸10GiB 容量的可壓縮文件,但由於前500MiB 中只有80MiB 可以壓縮,那麼SMB 壓縮算法將完全放棄壓縮文件,因此最終在網絡上傳輸的文件大小為10 GiB。強制壓縮的唯一方法是覆蓋某些默認註冊表設置,除非您確切知道自己在做什麼,否則編輯這些設置並不是您真正應該做的。
這是一種非常奇怪的行為,並且可能影響了很多用例。然而,好消息是微軟正在完全取消算法中的限制。本質上,SMB 壓縮現在將盡力壓縮您請求壓縮的所有文件。
顯然,這並不意味著在每個用例中都應該使用SMB 壓縮。Pyle 強調,一些格式,如JPG、ZIP 和DOCX 已經被壓縮,但取消這些限制肯定會使VHDX、ISO 和DMP 等其他格式受益。
不過,微軟並不僅僅止步於此。它引入了新的PowerShell、組策略和註冊表設置,可以更輕鬆地控制這兩種行為。如果您有興趣,所有這些詳細信息和相關命令都會在此處的博客中提及。