为 ASP.NET 应用程序收集性能计数器数据的首选方法

Posted

技术标签:

【中文标题】为 ASP.NET 应用程序收集性能计数器数据的首选方法【英文标题】:Preferred ways to collect performance counters data for ASP.NET applications 【发布时间】:2012-12-27 14:13:38 【问题描述】:

假设我有一个在 Windows Server 2008 R2 + IIS 7.5(或 Windows Server 2012 + IIS 8)上运行的 ASP.NET 应用程序,它使用 SQL Server 作为其数据存储。

以前在which ASP.NET performance counters to monitor 上提出过一些问题,但我找不到任何好的资源来自动收集性能计数器数据。

我心中的想法如下:

在特定时间间隔内收集指定的性能计数器 (可能需要 10 秒?)并将它们放入存储系统(A SQL Server 数据库、Windows Azure 表存储、Windows Azure Blob 存储、MongoDB 等)。

以下是我考虑的方式:

实现上述操作的 PowerShell 脚本。我以前没有这样做过,但我认为有一种方法可以将此脚本与 Windows 调度程序相关联,以便在特定时间间隔内自动调用。 实现上述操作的 Windows 服务。

我将拥有一个仪表板应用程序,它将读取这些数据以显示图形输出(图表等)。

你有什么想法和以往的经历?

【问题讨论】:

【参考方案1】:

根据我以前的经验,Windows 服务是我最后的选择。实际上,使用 powershell 完成此类任务对我来说更易于维护和轻松。现在我正在尝试为计数器和事件日志集成 RavenDB,以获得有关 IIS 应用程序的详细报告。

【讨论】:

以上是关于为 ASP.NET 应用程序收集性能计数器数据的首选方法的主要内容,如果未能解决你的问题,请参考以下文章

如何检索当前 asp.net 应用程序的性能计数器

用于远程可视化 ASP.NET 性能计数器的 Web 界面

如何在 asp.net 核心中从返回零计数的主体正确映射数组

我可以在性能监视器中使用哪个计数器来查看有多少内存在等待 GC?

如何对正在运行的 ASP.NET 应用程序进行非侵入式分析?

如何确定 ASP.Net 缓存的总大小?