【发布时间】:2013-02-25 01:08:03
【问题描述】:
我们有一个产生大量 I/O 的高流量网站。在 10 分钟内,它已读取超过 10 GB 的数据(在任务管理器中看到有问题的 w3wp)。对于内存和应用程序挂起,我一直在成功使用 WinDbg。但我不知道如何在负责最高 I/O 的进程中找到对象/方法。
这可能吗?
编辑 问题是:有没有办法在 .NET 程序集中分析 I/O 操作,比如:按最高磁盘 I/O 排序的线程列表(或类似的东西可以帮助我在哪里查看)
【问题讨论】:
-
您知道它可能在您的代码中发生的位置,还是您完全失明?
-
我不知道,浏览了所有代码几次(这是一个相当大的站点,有很多功能)。可以上传和发布图片,但每月数据量约为 10GB。
-
您是否偶然在应用程序中处理这些图像?
-
不,使用单独的无 cookie 域用于具有不同应用程序池的域
-
你必须先做一些计算。您的应用程序的平均页面大小是多少?你每分钟有多少用户?有了这个,你可以计算你的应用程序的平均 IO,看看你的流量与页面大小是否正常。如果正常,那么您可能需要扩展您的硬件(使用 SDD 或 RAID 而不是简单的 HDD)或更改代码中的某些内容。仅凭这些信息很难判断问题出在哪里,但我希望这会有所帮助你
标签: asp.net iis windbg performance