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