我有一个运行IIS6的Windows 2003框中的许多ASP.NET MVC网站。
将启用IIS6压缩关于性能有什么区别?
谢谢
保罗
静态压缩是一次性命中,然后被caching以供将来使用。 所以这个问题很less。
但是,由于你有一个MVC网站,你也必须使用dynamic压缩。 这对每个请求都会造成CPU中断,但通常这是值得的。 大多数情况下,有额外的CPU周期可供使用,但客户端的带宽有限。 所以经常压缩是一个好主意。 但是,如果服务器花费大部分时间在一定的高负载,不pipe它是否帮助或伤害变化。
您可以调整压缩级别以适应您的需求,这是可取的,因为每个常规使用情况会根据站点,服务器和带宽的不同而有所不同。 请参阅IIS6.0或IIS 7压缩中的IIS压缩。 好? 坏? 多less? (这在技术上与IIS7有关,但关于限制的讨论更为彻底)。
(我忘了如果IIS6这样做,但要知道IIS7将closuresdynamic压缩,当服务器达到一定的负载,并没有把它打开,直到它下降到一个更低的负载,我找不到这个信息现在虽然 – 所以不要把这个作为福音。)
我会说99%的时间,打开压缩是一件好事。 但是,与任何性能调整一样,请确保您testing和调整,以适应您的具体需求。
如果您在应用程序中提供/下载大量文本数据,开发人员可以非常容易地在代码中启用Gzip / Deflate,并且独立于IIS工作。 在这种情况下,它可能已经启用,但您可能不知道。
以下是由Steven Sanderson撰写的Pro ASP.Net MVC一书的相关摘录:
“不要忘记,HTTP压缩对于文本数据只是非常有用的,二进制数据,比如graphics,通常已经被压缩了,你不会因为在现有的JPEG压缩环境下压缩gzip压缩而受益,你只需要烧掉CPU周期。
“注意:对于静态内容(即从磁盘直接提供的文件)或dynamic内容(例如,ASP.NET MVC应用程序的输出),IIS 6和更高版本可以configuration为压缩HTTP响应。不幸的是,难以configuration(在IIS 6上,您必须直接编辑元数据库,这在某些部署scheme中可能不是一个选项),当然,这并不能保证为个别操作方法启用或禁用元数据库。