使用 perfmon 监控 Web 应用程序随时间变化的应用程序特定趋势
-
06-07-2019 - |
题
我想更好地了解应用程序正在做什么。我们正在监视 ASP.NET 和 .NET 计数器,但我们需要更深入地了解正在发生的情况以及发生的速度。与此相关的最佳实践是什么?是否有适用于 Microsoft.NET 环境的具体指南或文档?我会为此使用企业库吗?我们已经在使用该库的部分内容将数据输入到我们的应用程序中。
此时我们最大的痛点:
- 对应用程序进行故障排除的方法很少
(有日志,但日志记录过多,导致日志由于大小而几乎变得毫无用处)
- 对现有性能的影响最小
- 无法了解 Enjim 客户端正在做什么,例如命中、未命中等。
- 监控非常独特的性能(例如内存缓存服务器死机)
奖金
- 使用 MOM 内收集的数据
- 使用此数据来优化应用程序,从而产生最佳效果
- 提高系统的可维护性,以便我们的操作人员可以更轻松地维护该系统。
解决方案
有两个地方你应该关注。
首先,在您的测试环境中,您应该使用代码分析工具(例如 VS 内置的那种)来查看实际执行的代码路径。到目前为止,这揭示了应用程序的大部分细节,但建立对生产环境和负载的良好模拟可能很困难且耗时。
其次,在生产代码中使用自定义性能计数器。我们创建自己的性能计数器,并使用设置实用程序安装它们。这增加了一些复杂性,但是您确实无法通过它们来深入了解您的 Web 应用程序正在做什么。
更新性能计数器的行为是最少的。这是性能监视器的读取,这会增加一些开销(我知道这是违反直觉的)。
我们使用的企业库版本 (3.1) 没有对自定义性能计数器的任何直接支持,尽管它确实为自己安装了许多计数器。我不认为这些是你想要的。
其他提示
看一眼 运营设计. 。这包括帮助您检测应用程序的工具。这些工具还可以帮助您为应用程序创建运行状况模型,MOM 可以使用该模型进行运行状况监控。
不隶属于 StackOverflow