gzip 压缩可以提高性能,最终增加服务器的响应时间

gzip 压缩可以提高性能,最终增加服务器的响应时间

这是我当前的服务器场景。

我在 Rackspace Cloud 实例(16GB RAM)上运行,在 CentOS 5.5 安装上使用 cPanel/WHM。

我目前正在运行大约 10 个 Magento 网站,大小各异(从中型到小型)

随着时间的推移,我注意到网站的速度变慢了。我对数据库和其他方面进行了大量调整,以帮助提高 Magento 的性能。

我最近启用了全局 gzip 压缩通过向 apache 配置中添加以下 Post Include。

<IfModule mod_deflate.c>

    # Insert filter on all content
    SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary

</IfModule>

我立即注意到网站的加载时间更快了,我非常高兴。然而几分钟后,我发现响应时间增加了……完全抵消了性能提升,使网站的加载时间比使用 gzip 之前多了 2-3 秒。

我的理解是 gzip 不会占用太多额外的 CPU,但如果组合 10 个不同的网站,情况会如此吗?

有没有办法让内容仅进行一次 gzip 压缩,然后让 apache 查找已经进行 gzip 压缩的文件并使用它,而不是为每个请求一遍又一遍地压缩每个文件?

任何对此的见解都将不胜感激!

答案1

也许你可以看看修改磁盘缓存

答案2

有一种方法可以先对您的内容进行 gzip 压缩,然后使用一些重写 foo 来实现这一点(理论上)...但是...如果您对网站性能感兴趣,请查看反向代理缓存,例如 varnish。虽然我不使用 magento,但 varnish 似乎与它集成得很好:http://www.magentocommerce.com/magento-connect/pagecache-powered-by-varnish.html

嗨嗨。

相关内容