如何在asp.net应用程序中找到i/o瓶颈

Elg*_*des 6 asp.net iis performance windbg

我们有一个高流量的网站,产生了大量的I/O. 在10分钟内,它已经读取了超过10 GB的数据(在任务管理器中看到w3wp).对于内存和应用程序挂起,我一直在使用WinDbg.但我不知道如何在一个负责最高I/O的进程中找到对象/方法.

这甚至可能吗?

编辑 问题是:有没有办法在.NET程序集中配置I/O操作,比如:按最高磁盘I/O排序的线程列表(或类似的东西,可以帮助我查看)

Rex*_*x M 6

ANTS Performance Profiler

我已经使用这个工具取得了巨大的成功 - 处理查找特定指令,这些指令导致大容量Web场中的~512GB内存在5-10分钟内被咀嚼.听起来和你的情况非常相似.

现在,要切合实际 - 它不会神奇地解决你的问题.它仍然需要大量的设置,彻底的分析和侦探工作.但是这个工具肯定把问题从"几乎无法解决的"转变为"几天内可以解决".

更新:

正如我在评论中提到的那样(和Ben Emmett回应),我们可以使用ANTS监视内存,文件系统句柄 - 几乎任何资源消耗,并深入调用堆栈以查看特定例程的影响.