我们的应用程序响应时间很短,至关重要。 一切正常,除了每周几次,其中1次随机通话需要大约5000ms完成,而其他通话需要200ms。在几秒钟之前进行呼叫,因此它与正在卸载的dll无关。时间是随机的,没有涉及App池回收。
IIS时间:5000毫秒
ASP.NET \请求执行时间:5000毫秒
我们在代码中的计数器:200ms(在开始时和执行时记录)
似乎在我们的代码被击中之前,电话被卡住了。我们监控了perf计数器,当这种情况发生时,呼叫没有排队,没有等待时间。
IIS配置已使用自定义processModel值进行优化(如http://support.microsoft.com/kb/821268中所述),以获得更好的吞吐量。
我们监控了磁盘,网络,内存和CPU,一切看起来还不错。
什么可能导致这样的峰值(可能是IIS线程分配?) 明显的ASP.NET,.NET CLR,系统,线程旁边的其他什么方法可以帮助我们?
配置: Windows 2003 SP2(托管在VMWare ESX上)
IIS 6
.NET Framework 3.5
答案 0 :(得分:0)
我将从这篇文章开始WCF Request Throttling and Server Scalability
特别是 Throttling Tuning 部分:
为了在高端服务器上实现高吞吐量,您会这样做 需要进行以下限制调整:
- 增加ASP.NET线程限制以允许更多并发工作线程处理请求
- 增加WCF服务限制以允许更多并发请求
答案 1 :(得分:0)
您是否尝试过跟踪服务和客户端,以确定是否存在安全性的谈判或类似的事情会减慢您的速度?