动态压缩的设置为5至9会导致CPU负载过高。而静态压缩只会发生一次(直到文件被重新缓存),因此你可以将静态压缩设置得更高。
这篇深入的文章推荐将动态压缩设置为4,将静态压缩设置为7至9。该文章通过提供信息支持这一建议,让你自己来决定。
http://weblogs.asp.net/owscott/archive/2009/02/22/iis-7-compression-good-bad-how-much.aspx
小型的动态页面可以从更高的动态压缩设置中获益,因为随着文件变大,CPU负载也会增加。当页面大小约为200KB时,你需要考虑将动态设置降低。另外,请注意,较高的动态压缩设置会增加每个页面请求获取第一个字节的时间。这些因素支持使用更为克制的设置4进行动态压缩。
再次强调,对于静态资源,可以使用较高的设置,因为只有第一次请求会影响CPU负载和客户端等待时间。然而,如果你提供许多大型静态资源,那么静态压缩的效果可能不太好,因为你的缓存将填满并开始淘汰资源;因此,压缩后的资源无法从缓存中重复获取。
注意:没有“10”的设置。
还有两件事需要考虑:
你的.config
文件中的httpCompression
元素具有在CPU负载过高时禁用压缩的设置:
dynamicCompressionDisableCpuUsage="90"
dynamicCompressionEnableCpuUsage="80"
staticCompressionDisableCpuUsage="100"
staticCompressionEnableCpuUsage="80"
EnableCpuUsage
设置在CPU负载降至指定值以下时重新启用压缩。minFileSizeForComp="2700"
IIS 7.5提高了压缩的最小文件大小,默认值从IIS 7.0的256字节增加到2700字节,这是因为发现有些压缩文件比原始文件还要大。我不知道2700字节是否最好,但由于IP数据包可以合理地达到1400字节左右,所以这个设置将防止压缩小于两个数据包的文件。在挑战微软提高此设置的决定之前,我想进行真正的测试或阅读专家的建议。
在 CPU 速度比现在慢两个数量级的时候,10 是不好的选择。gzip 算法在当前的压缩算法中非常快,所以我会将它设置为 10,看看会发生什么。
我认为这取决于你的具体情况。如果你需要传输大量大文件并且有一些CPU处理能力,那么较高的数字会更好。然而,如果你有更多并发连接、小文件和不太强大的CPU,则较小的数字更好。