asp.net - 如何找到 ASP.NET 应用程序中的 I/O 瓶颈

标签 asp.net iis windbg performance

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

这可能吗?

编辑 问题是:有没有一种方法可以分析 .NET 程序集中的 I/O 操作,例如:按最高磁盘 I/O 排序的线程列表(或类似的内容可以帮助我在哪里查找)

最佳答案

<强> ANTS Performance Profiler

我使用这个工具取得了巨大成功 - 找到了导致大容量网络场上约 512GB 内存在 5-10 分钟内被耗尽的特定指令。听起来和你的情况非常相似。

现在,说实话 - 它不会神奇地解决您的问题。它仍然需要大量的设置、彻底的分析和侦探工作。但这个工具确实把问题从“实际上无法解决”变成了“几天之内就能解决”。

更新:

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

关于asp.net - 如何找到 ASP.NET 应用程序中的 I/O 瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058687/

相关文章:

asp.net - 编译错误CS0016 : Could not write to output file

c++ - 在 windbg 中查看挂起进程的 eax 寄存器中的入口点地址

c++ - WinDbg 分析 minidump (!analyze -v),那么 NULL_CLASS_PTR_DEREFERENCE、INVALID_POINTER_READ...等是什么?

html - 对齐 div 的问题

c# - Asp.net 中表单例份验证超时的单位是什么?

c# - 如何以标准格式转换日期时间

asp.net - 我什么时候应该使用 OWIN Katana?

asp.net - 无法启动任何 ASP.NET 项目

jquery - mvc post 与 ajax 效果

c# - 理解有漏洞的应用程序的 Performance Profiler 输出?