【问题标题】:Can I get all the performance metrics of an asp.net MVC 3 app from within the app itself?我可以从应用程序本身获取 asp.net MVC 3 应用程序的所有性能指标吗?
【发布时间】:2012-04-27 00:47:51
【问题描述】:

假设我在云端某处托管了一个 MVC 应用程序,这意味着我无法访问 IIS 或任何基础架构。

我可以控制的只是应用程序代码本身,以及归结为客户端的内容。

我的目标

随着时间的推移收集 MVC 应用程序在响应时间方面的性能数据。

当前问题

我可以从 Google Analyics 和其他客户端技巧中获得大量数据,但这并不能说明应用程序池是否过于频繁地回收。

同样,如果我在动作中设置秒表,这不会告诉我应用启动中的任何延迟(如果它必须重新启动)。

另外,如果我确实在操作中设置了秒表,它不会考虑重新渲染视图的任何延迟。例如,即使这是不好的做法,也可能会从视图进行数据库调用,而我的操作指标不会考虑到这一点。

我的问题

所以,如果我想获得来自多个客户和用户的请求持续多长时间的真实指标,那么除了应用程序中的秒表之外,哪里是最好的地方。还是无法从应用程序本身获得真实的指标,我必须在应用程序之外放置计数器(如在 IIS 中)。

【问题讨论】:

    标签: performance asp.net-mvc-3 metrics appharbor


    【解决方案1】:

    添加新的 Relic,它作为 AppHarbor 服务的一部分免费提供 - https://appharbor.com/addons/newrelic

    【讨论】:

    • 请注意,在撰写此评论时,由于技术原因,新遗物暂时被禁用。
    • 谢谢安迪...但我的问题更多是关于了解自己在应用程序中放置指标的位置。
    • 了解将指标放在何处很难。我通常从外部监控开始,例如Web 服务器需要多长时间来响应请求,数据库需要多长时间来响应应用程序等,然后添加更多(例如,使用 DBTuna 之类的数据库监控)您可以从哪里开始将指标放在外部接口即到 DB、到 Web 服务器、到其他服务
    【解决方案2】:

    既然您提到“在某处的云中”,您是否使用 Microsoft Azure 进行托管?如果是这样,您可以使用DiagnosticsMonitorConfiguration 登录到您的 Azure 存储中,有一些很棒的诊断。

    Here's 关于如何将诊断添加到您的网络和辅助角色的教程。你可以在MSDN找到完整的性能计数器列表

    您可以从每秒应用程序请求、内存和 CPU 利用率、网络适配器统计信息、输出缓存命中/未命中、请求执行时间等方面获取所有信息。

    【讨论】:

    • 嘿,感谢 mfanto,但它正在 AppHarbor 上运行。我正在寻找一种与托管无关的方法来衡量性能。仅在应用程序中。有可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多