我有一个服务器,目前在我的应用程序中进行了大量的处理,目标用户是那些有很好的互联网连接。
从服务器发送的输出始终是text / html,并且我们不使用任何媒体(audio/video)专用图像(静态站点图像,如徽标等)。
我们遇到严重的性能问题,我想知道是否closures服务器上的gzip / mod_deflate,以便服务器避免压缩输出。 这会导致性能的提高吗?
从理论上讲,禁用压缩应该可以释放一些CPU,但是不可能说明究竟是多less。 最好的办法是使用ApacheBench等基准testing应用程序,或者在启用和禁用压缩的情况下testing服务器的function。 如果你的服务器负载很重,并且不能很容易地进行基准testing,你可以尝试一下禁用压缩,看看CPU负载是否明显改变(一个监控应用程序在这里会有所帮助)。
不过,从经验来看,如果您因为高负载而需要禁用压缩function,则还需要考虑其他解决scheme(更大的服务器,更多的服务器,不同的架构,应用程序优化等)。 …)。
对于具有gzip的文本/ html通常是一件好事。 问题是:性能问题究竟是什么,是由应用程序代码还是由gzip开销引起的?
根据我们的经验,gzip会为我们的应用程序的CPU使用增加大约1-9的CPU用户。 IOW,CPU负载都在我们的应用程序。
SSL的另一个考虑:如果您的Web服务器终止SSL(具有SSL证书等),这个开销可能是相当大的。 我们最近在我们的负载均衡器中安装了SSL证书,而Web服务器上的CPU使用率则下降了近一半。 (我们主要服务于一个REST API,所以事务性会话的SSL一直在重build)。
我们的安装程序是IIS 6和IIS 7,但是以上方法适用于任何操作系统。
压缩对于静态内容是有好处的(事物还没有被压缩,不要试图重新压缩图像和压缩文件)。 压缩对于dynamic内容通常是不利的,因为开销消耗了任何潜在的收益。