我们目前的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文件的一小部分。
提前致谢,
答案 0 :(得分:1)
回答标题中的问题:使用您描述的规范的单个Varnish服务器应该可以轻松地提供20k +请求/秒,而不需要其他调整,而不是增加线程数。
您没有提供足够的信息(vcl,varnishlog)来回答您剩下的问题。
我的猜测是你不知何故最终序列化了后端请求。查看你的hit_for_pass对象并确保它们具有有效的TTL集。 (120s很好)