【问题标题】:Is there any way to access information about a Coldfusion server's load from within coldfusion?有什么方法可以从 Coldfusion 中访问有关 Coldfusion 服务器负载的信息?
【发布时间】:2010-06-28 07:27:48
【问题描述】:

我正在编写一个我想经常运行的计划任务。

问题是,如果服务器遇到高流量负载,我不希望运行此任务。

除了从 java 获取可用/总/最大内存之外,还有其他方法可以尝试确定此任务是否应该继续?

【问题讨论】:

  • '忙碌'通常意味着您正在提供大量页面,不一定使用大量内存,尽管这可能是一个副作用。我会使用 cfstat 或其一些变体来衡量 CF 中的业务。

标签: coldfusion scheduled-tasks server-load


【解决方案1】:

GetMetricData() 将很好地指示您的服务器有多忙,即有多少请求正在运行,有多少排队以及其他信息。

这与您从命令行运行 cfstat 获得的信息相同(您可以在 {cfroot}\bin\cfstat.exe 下找到该信息)。

但是,如果您只调用该函数一次,那么知道您此刻有多忙可能对您没有多大用处。使用 Windows perfmon 将性能数据记录到文件或数据库表中可能会更好。然后,您可以获得过去 5 分钟(或其他任何时间)内正在运行/排队的请求的平均数量,并决定是否运行您的任务。

【讨论】:

  • 这看起来很有希望,我无法从文档中看出,这仅在 Enterprise CF 上吗?此外,这在 *nix 服务器上是否同样有效?代码示例特别提到它从 NT PerfMonitor 获取数据是我问的原因。
  • 好吧 getMericData() 将在所有 CF 版本上正常工作,如果这就是你的意思 - cfstat 也是如此。只需在 CF Admin 中启用它! Perfmon 仅适用于 Windows。如果您在 Linux 上运行,请查看此线程:stackoverflow.com/questions/345543/perfmon-like-for-linux 好处是 Perfmon 允许访问 CF 性能计数器,前提是您在 CF Admin 中启用了它们。我不确定 Linux 等效项将如何工作。您也可以编写一个单独的任务来自己收集 cfstat 数字。很多选择!
【解决方案2】:

有一种简单的方法可以检索内存使用信息。

http://misterdai.wordpress.com/2009/11/25/retrieving-coldfusion-memory-usage/

对于 CPU 负载,我认为您可以从 getMetricData() 获取它,但也有其他方法,但由于这是我的第一篇 stackoverflow 帖子,我只允许一个链接:P 但它在我的博客上,所以只需做一个 CPU当您查看上面的链接时进行搜索。

您可能会发现深入研究 getMetricData() 以获取性能监控统计信息很有用。这是通过正在运行和排队的请求数来判断服务器繁忙程度的好方法。

希望这会有所帮助, 戴夫(又名戴先生)

【讨论】:

    【解决方案3】:

    使用 ColdFusion AdminApi。在浏览器中调用http://servername/CFIDE/adminapi/servermonitor.cfc 获取组件的cfcdocs。 If 为您提供了许多方法来获取 CF 服务器实例的运行状况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多