我有一个asp.net mvc4的web api接口,平均每天收到大约54,000个请求。
这是一个示例请求链接:http://myserv.x.com/api/123/getstuff?whatstuff=thisstuff 我有3台Web服务器位于负载均衡器后面,用于处理HTTP请求。平均响应时间约为300毫秒。然而,最近有些异常情况 (或者可能一直存在),响应时间会不时地在10-20秒之间波动。在这种情况下,相同的请求直接命中同一台服务器,而不是经过负载均衡器。
假设与询问: 我在思考是否有些东西正在重启应用程序池或IIS工作线程正在关闭和重新启动,从而导致每个新请求都需要热身并重新缓存自己。这种情况如此零散,以至于现在很难进行故障排除。相同的请求发送到相同的服务器会像预期的那样快速返回(连续的N个请求),因为它在约300ms内被缓存...但等待大约5-10-20分钟后,同一请求发送到相同的服务器需要16秒才能完成。
由于这些是生产系统,因此我只能提供有限的跟踪信息。如果有人遇到过此类问题或类似行为的信息,请帮忙提供任何有用的信息和攻略。谢谢。
更新: w3wpe.exe进程增长到了~3G。不知何故,它被清除了,PID也发生了变化,所以它本身或某些东西每3-4分钟就会被杀死。我在我的Web服务器(IIS)日志中看到了大量警告:
“为应用程序池‘MyApplication’服务的进程与Windows进程激活服务遭遇致命通信错误。进程ID是'1732'。数据字段包含错误号。”
这是一个示例请求链接:http://myserv.x.com/api/123/getstuff?whatstuff=thisstuff 我有3台Web服务器位于负载均衡器后面,用于处理HTTP请求。平均响应时间约为300毫秒。然而,最近有些异常情况 (或者可能一直存在),响应时间会不时地在10-20秒之间波动。在这种情况下,相同的请求直接命中同一台服务器,而不是经过负载均衡器。
GIVEN:
- System has been passed down to me so there may be gaps with IIS confiuration, etc,.
- Database: SQL Server 2008R2
- Web Servers: Windows Server 2008R2 Enterprise SP1
- IIS 7.5
- Using MemoryCache aggressively with Model and Business Objects with eviction set to 2hrs
- Looked at the logs but really don't see anything significantly relevant
- One application pool...no other LOB applications running on this server
假设与询问: 我在思考是否有些东西正在重启应用程序池或IIS工作线程正在关闭和重新启动,从而导致每个新请求都需要热身并重新缓存自己。这种情况如此零散,以至于现在很难进行故障排除。相同的请求发送到相同的服务器会像预期的那样快速返回(连续的N个请求),因为它在约300ms内被缓存...但等待大约5-10-20分钟后,同一请求发送到相同的服务器需要16秒才能完成。
由于这些是生产系统,因此我只能提供有限的跟踪信息。如果有人遇到过此类问题或类似行为的信息,请帮忙提供任何有用的信息和攻略。谢谢。
更新: w3wpe.exe进程增长到了~3G。不知何故,它被清除了,PID也发生了变化,所以它本身或某些东西每3-4分钟就会被杀死。我在我的Web服务器(IIS)日志中看到了大量警告:
“为应用程序池‘MyApplication’服务的进程与Windows进程激活服务遭遇致命通信错误。进程ID是'1732'。数据字段包含错误号。”