![100% HTTPS 站点的 IIS6 压缩](https://linux22.com/image/560011/100%25%20HTTPS%20%E7%AB%99%E7%82%B9%E7%9A%84%20IIS6%20%E5%8E%8B%E7%BC%A9.png)
我在运行 IIS6 的 Windows 2003 机器上有许多 ASP.NET MVC 网站。
启用 IIS6 压缩会对性能产生什么影响?
谢谢
保罗
答案1
静态压缩是一次性操作,然后被缓存以供将来使用。因此很少会出现问题。
但是,由于您有一个 MVC 站点,因此您还必须使用动态压缩。这确实会在每个请求上占用 CPU,但通常值得付出这个代价。大多数情况下,您的客户端有额外的 CPU 周期可用,但带宽有限。因此,压缩通常是一个好主意。但是,如果服务器大部分时间都处于一定的高负载状态,那么它是有帮助还是有害则有所不同。
您可以根据需要调整压缩级别,这是明智的做法,因为每个一般使用场景因站点、服务器和带宽而异。请参阅IIS6.0 中的 IIS 压缩或者IIS 7 压缩。好?坏?程度如何?(从技术上讲,这与 IIS7 有关,但对限制的讨论更为彻底)。
(我忘记 IIS6 是否会这样做,但请注意,当服务器达到一定负载时,IIS7 会关闭动态压缩,并且直到负载降至更低时才会重新打开它。不过,我现在找不到此信息的参考资料——所以不要把它当作福音。)
我想说,99% 的情况下,启用压缩是件好事。但与任何性能调整一样,请确保您进行测试并进行调整以满足您的具体需求。
答案2
如果您在应用程序中传送/下载大量文本数据,开发人员可以很容易地在代码中启用 Gzip/Deflate,并且它独立于 IIS 运行。在这种情况下,它可能已经启用,但您可能不知道。
以下是 Steven Sanderson 所著的《Pro ASP.Net MVC》一书的相关摘录:
“别忘了 HTTP 压缩只对文本数据有用。二进制数据(如图形)通常已经压缩。将 gzip 压缩与现有的 JPEG 压缩结合起来不会带来任何好处;您只会白白浪费 CPU 周期。
“注意:IIS 6 及更高版本可以配置为压缩 HTTP 响应,无论是针对静态内容(即直接从磁盘提供的文件)还是针对动态内容(例如,来自 ASP.NET MVC 应用程序的输出)。不幸的是,配置起来相当困难(在 IIS 6 上,您必须直接编辑元数据库,这在某些部署方案中可能不是一种选择),当然它不会为您提供针对单个操作方法启用或禁用它的保真度。”