【问题标题】:Varnish: how many req per second peak to (reasonably) expect?Varnish:(合理地)期望的每秒峰值有多少请求?
【发布时间】:2013-10-02 16:37:46
【问题描述】:

我们当前的 Varnish 配置遇到了一个奇怪的问题。

4 个 Web 服务器(Windows 2003 Server 上的 IIS 6.5,每个都安装在 Intel(R) Xeon(R) CPU E5450 @ 3.00GHz 四核,4GB RAM)

3x Varnish 服务器(Ubuntu 12.04.2 LTS 上的 varnish-3.0.3 修订版 9e6a70f - 64 位/精确,内核 Linux 3.2.0-29-generic,每个都安装在 Intel(R) Xeon(R) CPU E5450 上@ 3.00GHz 四核,4GB RAM)

这 3 个 Varnish 服务器有一个非常标准的普通 cfg:我们唯一更改的是 vcl_recv 和 vcl_fetch 以处理会话 cookie。它们目前配置为使用内存缓存,但我们已经尝试使用高性能 Raid Drive 切换到 HDD 缓存,结果完全相同。

大约两年前,我们在旧的网络农场上安装了它,没有出现任何问题,而且一切都非常顺利。现在,使用上述机器并在全新安装后,当我们的网站流量大时,我们的客户会遇到很多连接问题(客户端请求挂起、404 错误、文件丢失等)。从控制台日志中我们可以清楚地看到,当每个 Varnish 达到大约每秒 700 个请求时,这些问题就开始发生了:看起来他们无法处理更多的事情。我们可以随时通过关闭一两个 Varnish 服务器轻松重现关键场景,并查看其他服务器的反应:每次请求每秒计数达到 700 时,它们总是开始跳过节拍。考虑到我们过去的经历,并查看 Varnish 规格,这似乎根本不正常。

我们正在努力提高 Varnish 服务器的性能和/或了解问题的实际出处:为了做到这一点,我们真的可以使用其他以类似方式使用它的公司的某种“基准”为了帮助我们了解我们与预期的表现还有多远(我假设我们是)。

编辑(添加的 CFG 文件): 这是我们的default.vcl 文件。 这是varnishadm >param.show output控制台cmd的输出。

我还将尝试发布我们的 varnishlog 文件的一小部分。

提前致谢,

【问题讨论】:

    标签: load-balancing reverse-proxy varnish varnish-vcl


    【解决方案1】:

    回答标题中的问题:具有您描述的规格的单个 Varnish 服务器应该可以轻松地处理 20k+ 请求/秒,除了增加线程数之外没有其他调整。

    您没有提供足够的信息(vcl、varnishlog)来回答您剩下的问题。

    我的猜测是您最终会以某种方式序列化后端请求。检查您的 hit_for_pass 对象并确保它们具有有效的 TTL 集。 (120秒就好)

    【讨论】:

    • 嗨@Ikarsten,感谢您的回复。我将使用我们正在使用的默认 VCL 文件的更详细信息(链接)来编辑我的帖子。我们使用的默认 TTL(如 varnishadm 所示)是 120.0 秒,我们还在 vcl_fetch 中通过set beresp.ttl 每次返回(hit_for_pass)之前再次设置它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2015-10-13
    • 2021-12-02
    • 2019-10-12
    相关资源
    最近更新 更多