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

21

我认为许多开发人员都知道当用户告诉他们"应用程序又慢了"时那种不舒服的感觉。

在一个复杂的 Web 应用程序中,实际上有许多可能的原因导致(感知)性能下降:数据库响应慢、带宽问题、糟糕的缓存等。这里肯定会出现一些在开发或测试环境中永远不会出现的问题。

现在我的问题是:

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

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

主要目标是一眼看到(或仔细查看后)导致性能问题的问题是什么。

4个回答

6
我认为您需要寻找的软件类别是“.net分析器”或“.net跟踪器”。其中一个您可以考虑的工具是JetBrains的dotTrace。它可以提供运行时堆栈跟踪和一系列计数器,指示可能的瓶颈。

4

之前提到的工具肯定有效。在我们的商店,我们需要更精细的信息,并建立了自己的解决方案(长话短说:编写代码比争论工具和可检索数据更容易)。

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

我使用性能计数器和 WMI 值的组合来获取其余部分 - 您可以使用一些非常简单的 C# 读取这些内容 - 这为您提供了完全控制权,然后可以将其转储到 .csv 等文件中以便在 Excel 中查看/处理或者如果您正在更新页面作为控制中心。

我可能还会看看 IIS.net 作为 IIS 工具的绝佳资源,包括调试、安全等。


1
我刚刚查看了iis.net,并发现几天前发布了一篇好文章:http://blogs.iis.net/timamm/archive/2012/02/11/asp-net-and-iis-performance-troubleshooting-tools-3-key-resources.aspx - Andrew Huey

1

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接