.net - 生产中 .NET 应用程序的持续性能监控?

标签 .net performance monitoring production continuous

给定 SOA 环境中相对典型的 .NET 4 系统(即 Windows Server 2008 R2、IIS 7 上的 RESTful Web 服务、NServiceBus 消息传递的 Windows 服务、SQL Server 2008 R2 等),最佳实践或事实上的解决方案是什么(没有企业价格标签)用于在生产中执行 24x7 性能监控?

不一定是它消耗了多少 CPU/内存/磁盘 IO,而是例如每分钟进行了多少次 createAccount() 调用,generateResponse() 方法花费的平均时间是多少,并检测例如 generateResponseStarted 和 generateResponseComplete(方法被调用(反过来可以调用第 3 方)并且响应已准备好分别返回)。

经过一些谷歌搜索后,似乎选项适用于低级分析器(如 dotTrace)并实现性能计数器并使用 PerfMon 或其他一些 OpManager 类型的产品来使用它们。

你会推荐什么?为实时应用程序实现性能计数器会显着降低生产系统的性能吗?如果没有,是否有任何好的库可以简化 .NET 中的实现?如果是的话,除了内存-磁盘-cpu 之外,人们如何监控他们的应用程序的性能?

@Ryan Hayes

谢谢,我正在寻找一种方法来查看生产系统上异常的减速或峰值。例如,在压力测试期间一切都很好,但由于某种原因,我们依赖的第 3 方出现了一些问题,或者数据库由于线程锁定而变慢,或者 SAN 正在让路,或者任何其他意外情况。低级分析的开销太大,而只有在出现问题时才打开计数器,此时为时已晚。另外,我们将缺少历史数据进行比较(我需要某种警报系统,以便在 delta 超出可接受的阈值时)。我想知道人们如何监控他们的生产系统的性能,以及根据他们的经验,什么是非内存/CPU/服务器相关监控的最佳方法。

最佳答案

你可以试试AlertGrid .看起来这可以解决您的问题。

您可以从应用程序向 AlertGrid 发送各种参数(新帐户名称、执行某些重要逻辑的时间等)。 AlertGrid 服务可以对您的数据做几件事。首先,它可以处理一些使用您发送的参数构建的通知规则(比如做重要事情的时间> X 秒-> 向负责人发送短信)。

两周后,AlertGrid 将拥有一系列新功能。看起来对您来说最重要的是绘制从系统接收到的参数的可能性。

请注意,AlertGrid 无法从您的系统检测参数 - 您需要改为发送它们。这可能看起来像是一项额外的工作,但我们认为它与安装和配置一些专门工具所需的时间相当。另一方面,由于这种方法,AlertGrid 克服了一些限制(它可以与任何可以发送 http 请求的东西集成)。

我相信当您在 AlertGrid 中创建帐户并通过其交互式教程时会更容易理解。

您可能已经注意到我是 AlertGrid 的开发人员团队:)

免责声明:在撰写本文时,我们知道 AlertGrid 的价格将在不久的将来降低,因此现在不要查看它们,您可以联系我们的支持热线以获取有关定价的更多信息。免费帐户可用,应该足以开始使用。

关于.net - 生产中 .NET 应用程序的持续性能监控?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441435/

相关文章:

c# - 是否可以在没有 UWP 的情况下使用 .NET Native?

c# - 我们可以将枚举作为通用数据类型吗?

python - 加速简单的多维计数器代码

python - 我可以加快这个基本的线性代数代码吗?

java - 在 Java 应用程序中使用 JMX 监控什么?

docker - 在 kubernetes 上带有多容器 pod 的 Prometheus

delphi - Delphi XE中如何监控目录中的文件?

.NET 电话号码解析库

c# - 如何从后面的 aspx 代码中的通用主体中获取自定义数据?

c - 从磁盘读取文件期间使用中断