2011-03-01 146 views
1

我想在ColdFusion网站(它有一个专用的服务器)上创建一个页面,该页面为用户提供有关服务器所处的压力数量的一些信息。coldfusion服务器状态页面

因此,用户可以去那里看到服务器速度慢的原因是由于流量过大或由于其他原因(这可能是我手动提供的信息)。

流量数据需要是动态的。

所以我很好奇,如果有人曾经试图解决这样的事情?并且如果可能有一些开源软件包可以提供帮助?

回答

4

有几个免费的(而不是免费的)CF监测工具可用于所有形状和大小。这里有一个很好的列表: http://cf411.com/#cfmon

很多名单上有你要找的类型将允许你在一个单页等数据暴露给用户。如果你把它放在公共服务器上,我建议把它放在它的前面......这不是你想要公开给大众的信息! :)

+0

Jake的链接查理Arehart的cf411网站是理想的。看看所有的选项,但....我不能推荐CFTracker足够高。奇妙的免费软件。 – 2011-03-01 23:51:16

2

对于初学者来说,可以获取关于JVM中的内存使用情况实时信息:

<cfset runtime = CreateObject("java","java.lang.Runtime").getRuntime()> 
<cfset freeMemory = runtime.freeMemory()/1024/1024> 
<cfset totalMemory = runtime.totalMemory()/1024/1024> 
<cfset maxMemory = runtime.maxMemory()/1024/1024> 

也有可能 - 但显然不是在所有的系统 - 获取有关服务器本身的内存状况信息:

<cfset mFact = createObject('java','java.lang.management.ManagementFactory')> 
<cfset osBean = mFact.getOperatingSystemMXBean()> 
<cfset freeSystemMem = osBean.getFreePhysicalMemorySize()> 
<cfset totalSystemMem = osBean.getTotalPhysicalMemorySize()> 

如果您使用Server Monitor API,则可以进行更详细的说明。如果您使用FusionReactor,则FRAPI会显示各种有趣的功能,例如getCpuUsage()

我不确定向用户公开此类信息是否合理,但有多种选择。

0

我不知道,如果你在Windows上运行,但如果你是另一种选择是让perfmon收集有关您的ColdFusion实例统计信息,如平均请求时间,排队长度等

你可以还可以通过perfmon收集CPU,可用内存等,并存储一组日志文件,您可以使用CF预定任务每分钟读取一次,并存储在数据库中进行汇总和绘图等。

当然,您的数据可能在这种情况下可能长达一分钟,但对于在几天和几个月内存储度量标准非常有用,以便您可以看到服务器随时间的演变情况。

我们已经使用了这个解决方案几年了,虽然需要一些维护,但它确实给了我们一个关于我们所有服务器如何执行的很好的概述。

我想在将来使用类似New Relic但他们不支持JRun。也许如果CF允许单独使用Tomcat,我们将来会看到这个选项。