我们试图把清漆放在我们的IIS 7.5农场前面。 所述农场处理3个网站(SiteA,B和C) – 清漆仅在A的前面。
当我们添加清漆,我们得到了75-90%的命中率,但我们的IIS场实际上减慢,以至于传递给IIS场的请求超时。
但是,当我们删除清漆,整个SiteA运行“足够快”(约500毫秒的响应时间),我们的超时大部分消失。 B站点和C站点的性能不受影响。
我们应该调查一下IIS中是否有一些设置? 应用程序池超时设置为20分钟的默认值,但由于总是有stream量到这些站点(整个服务器场需要30-200 req / sec),所以我觉得应用程序池超时并不是一个因素。
以下是在正常时间内IIS中SiteA的平均time_taken / min: 
当我们从IIS服务所有stream量(绿色),然后插入清漆(蓝色)时,看起来像这样: 
正如你所看到的,清漆开始供应大部分stream量后约40分钟,IIS(黄色)决定显着减速。 我们在一天中的不同时间都做到了这一点,从10分钟到3小时,我们目睹了我们的第一次大幅放缓。
回收应用程序池会带来速度(在15:30之前蓝色跳跃),但最终会再次减慢速度。 去除清漆并将全部stream量放在IIS群集上(蓝色掉落)可以让事情恢复正常。
任何人有任何想要监视和/或设置(IIS或清漆)调整?
看来我们发现我们的问题 – 它与Varnish或IIS没有任何关系。 ASP.NET代码中有一个错误。 它被设置为创build到数据库的连接,在X分钟不活动之后,它将closures连接。 该错误是,它从来没有试图重新打开一个closures的连接。
这是有道理的,如果你把系统的负载,它开始崩溃。 它实际上需要足够的stream量来保持连接的开放。