我在写一个计划任务,我想经常运行。有没有什么方法可以从Coldfusion内部访问有关Coldfusion服务器负载的信息?
问题是,如果服务器遇到高流量负载,我不希望此任务运行。
是否有任何其他方式,然后从java获得免费/总/最大内存来试图找出这个任务是否应该继续?
我在写一个计划任务,我想经常运行。有没有什么方法可以从Coldfusion内部访问有关Coldfusion服务器负载的信息?
问题是,如果服务器遇到高流量负载,我不希望此任务运行。
是否有任何其他方式,然后从java获得免费/总/最大内存来试图找出这个任务是否应该继续?
GetMetricData()是要给你一个很好的迹象服务器的繁忙程度,即有多少请求正在运行,多少排队以及其他信息。
这与您从命令行运行cfstat
得到的信息相同(您会在{cfroot}\bin\cfstat.exe
下找到该信息)。
但是,如果您只是调用该函数一次,那么知道您在当前的忙碌程度对您而言可能并不是很有用。使用Windows perfmon
将性能数据记录到文件或数据库表可能会更好。然后,您可以在过去5分钟内(或其他)获取运行/排队请求的平均数量,并决定是否运行您的任务。
这看起来非常有希望,我不能从文档中知道,这是仅限于Enterprise CF吗?此外,这将在* nix服务器上的工作相同吗?代码示例特别提到它从NT PerfMonitor获取数据是我为什么要问的原因。 – 2010-06-29 00:06:15
如果这就是你的意思,那么getMericData()在所有CF版本上都可以正常工作 - 对于cfstat也是如此。只需在CF管理员中启用它! Perfmon仅适用于Windows。如果你正在Linux上运行,然后看到这个线程: http://stackoverflow.com/questions/345543/perfmon-like-for-linux 好处是Perfmon允许访问CF性能计数器,只要你有他们启用CF管理员。我不确定Linux的等价物如何工作。您也可以编写一个单独的任务来自行收集cfstat数字。很多选择! – 2010-06-29 07:45:21
有一个简单的方法来检索内存使用情况信息。
http://misterdai.wordpress.com/2009/11/25/retrieving-coldfusion-memory-usage/
CPU的工作量,我认为你可以从getMetricData(把它),但也有其他的方法也一样,但因为这是我的第一个计算器文章中,我只允许一个链接:P但是它在我的博客,所以当你查看上面的链接时只需要进行CPU搜索。
您可能会发现挖掘getMetricData()以获取性能监视统计信息很有用。通过运行和排队请求的数量来说明服务器的繁忙程度是一种很好的方式。
希望这有助于 戴夫(又名先生DAI)
使用ColdFusion AdminApi。请在您的浏览器中拨打http://servername/CFIDE/adminapi/servermonitor.cfc以获取组件的cfcdocs。如果给你许多方法来获得你的CF服务器实例的健康。
“忙碌”通常意味着您正在提供大量页面,不一定使用大量内存,尽管这可能是一种副作用。我会使用cfstat或其中的一些变化来衡量CF中的业务。 – 2010-06-28 09:15:28