【问题标题】:Monitoring AppDomain resources and setting thresholds监控 AppDomain 资源并设置阈值
【发布时间】:2011-02-17 06:58:21
【问题描述】:

我的公司托管由第三方创作的组件。每个组件都托管在自己的 AppDomain 中,但可能与其他组件共享一个服务器。最近,我认为有一个或多个写得不好的组件行为不端并且消耗了太多资源,导致服务器崩溃。我希望能够:

  1. 确定哪个组件是有罪的一方,或者换句话说,确定每个组件的 appdomain 正在使用多少资源(内存、操作系统句柄、CPU 周期等)。

  2. 在 appdomains 上设置阈值,这样即使一个组件确实发疯了,它可以消耗的资源也是有限的,并且它应该不会影响同一服务器上其他组件的性能。

    李>

有人有什么想法吗?

【问题讨论】:

    标签: .net appdomain instrumentation


    【解决方案1】:

    虽然这不是我问题的完整答案,但它确实满足了我的大部分要求。

    1. 此后我发现了 AppDomain 对象 (http://msdn.microsoft.com/en-us/library/z9744cf9.aspx) 的 MonitoringIsEnabled、MonitoringSurvivedMemorySize、MonitoringSurvivedProcessMemorySize、MonitoringTotalAllocatedMemorySize 和 MonitoringTotalProcessorTime 属性,它们满足了我上面 1 中的一些要求。但我仍然想知道操作系统句柄,如果可能的话,可以设置阈值。这可行吗?

    2. 如果无法设置资源使用阈值,我想我可以改为使用上述属性持续监控域,并在检测到它超过一定数量的内存或 CPU 时间时卸载它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-05
      • 2022-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多