2

我已经将一个 .NET 网站部署到 2008 (IIS7) 服务器上,并且该网站似乎可以运行多达 30-50 个并发用户。在对其进行负载测试时,该站点在 100 个并发用户之后的某个时间会停止运行。页面加载从 1.5 秒到 90+

w3wp 达到 100% 并保持这种状态,直到我停止负载测试。另一方面,SQL 闲置率约为 2-3%。

我使用调试诊断进行了跟踪,报告指出其中一个线程占用了 11.358 cpu 时间,而最接近的亚军则为 0.687。很高兴我找到了罪魁祸首,但是我不知道如何处理我得到的信息。这是报告输出。

线程 19 - 系统 ID 4016 入口点 0x00000000 创建时间 2009 年 7 月 8 日晚上 9:28:53 在用户模式下花费的时间
0 天 00:00:11.187 在内核模式下花费的时间 0 天 00:00:00.171

函数源 ntdll!KiFastSystemCallRet
ntdll!NtWaitForSingleObject+c
kernel32!WaitForSingleObjectEx+be
mscorwks!PEImage::LoadImage+1af
mscorwks!CLREvent::WaitEx+117
mscorwks!CLREvent::Wait+17
mscorwks!ThreadpoolMgr::SafeWait+73
mscorwks!ThreadpoolMgr ::WorkerThreadStart+11c mscorwks!Thread::intermediateThreadProc+49 kernel32!BaseThreadInitThunk+e ntdll!__RtlUserThreadStart+23

ntdll!_RtlUserThreadStart+1b

任何帮助表示赞赏!

4

2 回答 2

5

我建议您使用更高级别的分析器。这是一个列表:

于 2009-07-09T02:58:22.037 回答
1

检查性能监视器以查看有多少异常被抛出,这使用了大量的 cpu。

于 2009-07-09T03:15:06.143 回答