日前,微软推出了针对Windows11用户的可选更新KB5016691和针对WindowsServer2022用户的KB5016693。可选更新KB5016691提供的内容将整合到下个月补丁星期二发布的累积更新中,部分新功能已经面向尝鲜者开放。两个可选更新KB5016691和KB5016693在其变更日志中都提到了对服务器消息块(SMB)压缩的改进,但日志中未提及任何细节。幸运的是,Microsoft的NedPyle在专门的博客文章中介绍了SMB压缩的所有增强功能。在客户端-服务器环境中使用SMB压缩允许管理员、用户和应用程序在通过网络传输内容时压缩文件。这种方式的优点是显着降低了带宽的使用,但是由于文件在网络传输前后都需要进行压缩和解压过程,这种方式的代价是增加了CPU的使用率。在KB5016691和KB5016693之前,SMB压缩的行为很奇怪。基本上,它使用默认算法只尝试压缩文件的前500MiB(注意:1MB=1000KB但1MiB=1024KB),任何小于此阈值的东西都不会被压缩,即使它具有“可压缩”特性。还有一个额外的警告。在读取文件的前500MiB期间,如果算法检测到可执行压缩器的文件大小低于100MiB,则它根本不会尝试压缩文件的其余部分。想象一下,你要传输一个10GiB的可压缩文件,但由于前500MiB中只有80MiB可以压缩,SMB压缩算法会将压缩后的文件完全丢弃,所以最终通过网络传输的文件大小为10GiB。强制压缩的唯一方法是覆盖一些默认的注册表设置,除非您确切地知道自己在做什么,否则编辑这些设置并不是您真正应该做的事情。这是一个非常奇怪的行为,可能会影响很多用例。不过,好消息是微软正在完全取消算法中的限制。本质上,SMB压缩现在将尽最大努力压缩您请求压缩的所有文件。显然,这并不意味着在每个用例中都应使用SMB压缩。Pyle强调,JPG、ZIP和DOCX等一些格式已经被压缩,但取消这些限制肯定会使VHDX、ISO和DMP等其他格式受益。不过,微软并没有就此止步。它引入了新的PowerShell、组策略和注册表设置,可以更轻松地控制这两种行为。如果您有兴趣,请在此处的博客中提及所有这些详细信息和相关命令。
