我正在编写一个我想经常运行的计划任务。
问题是如果服务器遇到高流量负载,我不希望运行此任务。
除了从 java 获取可用/总/最大内存来尝试确定此任务是否应该继续之外,还有其他方法吗?
我正在编写一个我想经常运行的计划任务。
问题是如果服务器遇到高流量负载,我不希望运行此任务。
除了从 java 获取可用/总/最大内存来尝试确定此任务是否应该继续之外,还有其他方法吗?
GetMetricData()将很好地指示您的服务器有多忙,即有多少请求正在运行,有多少排队以及其他信息。
cfstat
这与您从命令行运行获得的信息相同(您会在 下找到{cfroot}\bin\cfstat.exe
)。
但是,如果您只调用该函数一次,那么知道您此时有多忙可能对您没有多大用处。使用 Windows 将性能数据记录到文件或数据库表中可能会更好perfmon
。然后,您可以获得过去 5 分钟(或其他任何时间)内正在运行/排队的请求的平均数量,并决定是否运行您的任务。
有一种简单的方法可以检索内存使用信息。
http://misterdai.wordpress.com/2009/11/25/retrieving-coldfusion-memory-usage/
对于 CPU 负载,我认为您可以从 getMetricData() 获取它,但也有其他方法,但由于这是我的第一篇 stackoverflow 帖子,我只允许一个链接:P 但它在我的博客上,所以当你搜索 CPU 时看看上面的链接。
您可能会发现深入研究 getMetricData() 以获取性能监控统计信息很有用。这是通过正在运行和排队的请求数来判断服务器繁忙程度的好方法。
希望这会有所帮助,戴夫(又名戴先生)
使用 ColdFusion AdminApi。在浏览器中调用http://servername/CFIDE/adminapi/servermonitor.cfc以获取组件的 cfcdocs。如果为您提供了许多方法来获取您的 CF 服务器实例的运行状况。