清漆:每秒钟有多少req(合理)预期?

时间:2013-09-26 15:46:53

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

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

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

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

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

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

我们正在努力改善我们的Varnish服务器性能和/或了解问题的实际位置:为了做到这一点,我们可以真正使用其他以类似方式使用它的公司的“基准”为了帮助我们了解我们与预期表现的距离(我假设我们是)。

编辑(添加了CFG文件): 这是我们的default.vcl文件。 这是varnishadm >param.show output console cmd。

的输出

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

提前致谢,

1 个答案:

答案 0 :(得分:1)

回答标题中的问题:使用您描述的规范的单个Varnish服务器应该可以轻松地提供20k +请求/秒,而不需要其他调整,而不是增加线程数。

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

我的猜测是你不知何故最终序列化了后端请求。查看你的hit_for_pass对象并确保它们具有有效的TTL集。 (120s很好)