【问题标题】:No load time difference with and without varnish有无清漆的空载时间差
【发布时间】:2016-02-08 01:47:57
【问题描述】:

我正在尝试使用清漆缓存在我的服务器上缓存静态文件。我将 varnish 配置为缓存具有图像扩展名(.jpg、.png 等)的文件。之后,我打开我的网站并使用浏览器开发人员工具对其进行调试,并检查我网站上所有图像的加载时间,无论我是否使用清漆,加载时间都没有差异。响应标头中的 X-Cache 条目中有一个“HIT”,所以图像在我的缓存中可用,对吗?知道我会做错什么吗?

附言。我使用 nginx 作为后端服务器

【问题讨论】:

  • 老实说,我不希望在这种情况下看到时间不同。一个浏览器中的单个用户不会为您提供有关加载时间的有用数据。如果您对实数感兴趣,您应该使用 jmeter 或更好的 tsung 进行负载测试。

标签: caching nginx varnish


【解决方案1】:

清漆不应该对静态文件产生真正的影响,尤其是当它们位于 SSD 上时。非常频繁的站点可能是一个例外,特别是当数据存储在(慢速)HDD 上时。在这里,您有大量的 I/O,可以通过使用 Varnish 将图像缓存在 ram 中来大大减少。但这些可能是静态文件缓存有意义的一些特殊情况。对于 nginx 来说,同样值得注意的是,这是一个速度非常快的网络服务器,非常擅长传递静态文件。

Varnish 的主要用途是由一些服务器端后端生成的 HTML,如 PHP、ASP.NET 和其他为此任务设计的语言。与提供静态文件相比,生成动态内容对时间非常敏感:后端帽子可以用于例如当今 Web 应用程序中非常常见的数据库查询或解析模板。 Wordpress 是一个广泛使用的 CMS,也是一个很好的例子:在一个请求上执行几个 10k 的 php 代码,根据插件的数量,100 个数据库查询甚至更多也不例外。

因此,对于每个请求,服务器都有很多事情要做。对于您作为网站所有者,这具有以下效果:

  1. 页面加载时间增加,过高会导致问题:

  2. 根据访问者的数量,您可能会花钱购买更多或更强大的服务器

Varnish 可以将后端生成的 HTML 存储在 RAM 或硬盘上。特别是对于 SSD,后者是有意义的。根据您网站的结构和使用情况,Varnish 至少会提高您的页面速度,并且可能还会节省资金,因为更少(功能强大)的服务器可以完成这项工作。

当将 Varnish 用作动态生成内容的前端时,您会发现明显的不同。取决于应用程序甚至有很大的不同。我为基于 vBulletin 的论坛配置了 varnish,可以将页面加载时间提高约 5 倍。

总结您应该专注于缓存动态页面,而不是图像或客户端脚本之类的静态内容,因为在大多数情况下,网络服务器已经足以提供这些内容。当静态内容真的很慢时,这可能可以通过使用 CDN 来改善。或者您的网络服务器可能没有很好地配置为最佳速度。例如,可能没有为图像定义生命周期。这会对性能产生负面影响,尤其是对较大的性能。但是,如果不进一步了解您的应用程序和配置,就不可能调查性能问题并给出具体提示如何增强它。

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多