用于实时监控ASP.NET Web应用程序的工具和方法?

时间:2008-11-03 16:07:43

标签: asp.net performance monitoring production

我认为当用户告诉他们“应用程序很慢(再次)”时,许多开发人员都会感到不舒服。

在复杂的Web应用程序中,(感知)性能下降可能有很多可能的原因:数据库响应缓慢,带宽问题,缓存不良等等。肯定存在永远不会发生的问题。开发或暂存环境。

现在我的问题:

是否有一组工具和/或方法能够以可视方式在IIS / ASP.NET / SQL Server生产系统上提供全面的“实时”状态(而不仅仅是性能计数器) ):

  • 当前的HTTP请求(比如最后n分钟)
  • 例外/超时
  • 带宽数据
  • 打开的数据库连接/数据库调用数
  • ...

主要目标是一目了然(或仔细观察)导致性能问题的问题。

4 个答案:

答案 0 :(得分:6)

我认为您正在寻找的软件类别是“.net profiler”或“.net tracer”。您可以考虑的一个这样的工具是JetBrains'dotTrace。它为您提供了运行时堆栈跟踪和一组指示可能存在瓶颈的计数器。

答案 1 :(得分:4)

之前提到的工具肯定会奏效。在我们的商店,我们需要更精细的信息并构建我们自己的解决方案(长篇故事:编写代码比讨论工具和可检索数据更容易)。

我使用LogParser翻阅IIS日志并创建这些日志的输出报告(例如结果代码细分等)。

我使用了性能计数器和WMI值的组合来完成剩下的工作 - 您可以使用一些相当简单的C#来阅读这些内容 - 这使您可以完全控制,然后可以转储到.csv等以便在Excel中查看/处理您正在将页面更新为控制中心。

我可能还会将IIS.net视为IIS工具的一个很好的资源,包括调试,安全性等。

答案 2 :(得分:1)

我关注urig's advice并找到this software called SmartInspect

有人知道这个日志/监控工具吗?它似乎是实时控制台和开发人员库的组合。

答案 3 :(得分:1)

CLR 4.5将具有一些新功能,可帮助您实时监控ASP.NET性能 - 无需重新启动应用程序。基本上你可以重新JIT你的代码,在其中包含一些监视钩子,然后检查在类/方法等中花费的时间。

我确信dotTrace和其他分析工具会自动利用这一点,但值得一试:C9 - Inside Re-JIT with David Broman