我想在ColdFusion网站(具有专用服务器)上创建一个页面,该页面为用户提供有关服务器所承受的压力量的一些信息。
因此,用户可以去那里看看服务器速度慢的原因是由于流量高,或者由于其他原因(可能是我手动提供的信息)。
交通数据需要是动态的。
所以我很好奇其他人是否曾尝试过这样的事情?如果可能有一些开源软件包可以提供帮助?
答案 0 :(得分:4)
有各种形状和尺寸的免费(而非免费)CF监控工具。这是一个很好的清单: http://cf411.com/#cfmon
该列表中的许多是您正在寻找的类型,允许您在单个页面中向用户公开此类数据。如果你把它放在公共服务器上,我建议在它面前放置身份验证......这不是你想要向公众公开的那种信息! :)
答案 1 :(得分: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()
。
我不确定将此类信息公开给您的用户是否有意义,但有一些选择。
答案 2 :(得分:0)
我不确定您是否在Windows上运行,但如果您是另一种选择,则允许perfmon
收集有关您的ColdFusion实例的统计信息,例如平均请求时间,队列长度等。
您当然也可以通过perfmon
收集CPU,可用内存等,并存储一组日志文件,您可以使用CF计划任务每分钟读取一次,并存储在数据库中进行汇总和绘图等。
当然,在这种情况下,您的数据可能只有一分钟的时间,但对于存储数天和数月的指标非常有用,这样您就可以了解服务器的性能。
我们已经使用了这个解决方案几年了,虽然需要一些维护,但它确实让我们对我们所有服务器的运行情况有了很好的了解。
我想在将来使用像New Relic这样的东西,但是他们不支持JRun。也许如果CF允许独立使用Tomcat,我们将来会看到这个选项。
答案 3 :(得分:0)
真的取决于你想看到的确切数据吗?
我认为谷歌分析的混合物,如果你在Windows上使用wmi,收集硬件/ os / coldfusion性能计数器/统计数据。
以下是wmi和coldfusion的一个例子。
http://misterdai.wordpress.com/2010/03/02/askdave-cf7-cpu-usage-on-windows/
然后这是我同样的问题,以及一些例子:
I want to use WMI or Java in ColdFusion on Windows to get performance data