我想在ColdFusion網站(它有一個專用的服務器)上創建一個頁面,該頁面爲用戶提供有關服務器所處的壓力數量的一些信息。coldfusion服務器狀態頁面
因此,用戶可以去那裏看到服務器速度慢的原因是由於流量過大或由於其他原因(這可能是我手動提供的信息)。
流量數據需要是動態的。
所以我很好奇,如果有人曾經試圖解決這樣的事情?並且如果可能有一些開源軟件包可以提供幫助?
我想在ColdFusion網站(它有一個專用的服務器)上創建一個頁面,該頁面爲用戶提供有關服務器所處的壓力數量的一些信息。coldfusion服務器狀態頁面
因此,用戶可以去那裏看到服務器速度慢的原因是由於流量過大或由於其他原因(這可能是我手動提供的信息)。
流量數據需要是動態的。
所以我很好奇,如果有人曾經試圖解決這樣的事情?並且如果可能有一些開源軟件包可以提供幫助?
有幾個免費的(而不是免費的)CF監測工具可用於所有形狀和大小。這裏有一個很好的列表: http://cf411.com/#cfmon
很多名單上有你要找的類型將允許你在一個單頁等數據暴露給用戶。如果你把它放在公共服務器上,我建議把它放在它的前面......這不是你想要公開給大衆的信息! :)
對於初學者來說,可以獲取關於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()
。
我不確定向用戶公開此類信息是否合理,但有多種選擇。
我不知道,如果你在Windows上運行,但如果你是另一種選擇是讓perfmon
收集有關您的ColdFusion實例統計信息,如平均請求時間,排隊長度等
你可以還可以通過perfmon
收集CPU,可用內存等,並存儲一組日誌文件,您可以使用CF預定任務每分鐘讀取一次,並存儲在數據庫中進行彙總和繪圖等。
當然,您的數據可能在這種情況下可能長達一分鐘,但對於在幾天和幾個月內存儲度量標準非常有用,以便您可以看到服務器隨時間的演變情況。
我們已經使用了這個解決方案几年了,雖然需要一些維護,但它確實給了我們一個關於我們所有服務器如何執行的很好的概述。
我想在將來使用類似New Relic但他們不支持JRun。也許如果CF允許單獨使用Tomcat,我們將來會看到這個選項。
真的取決於你想看到什麼確切的數據?
我認爲谷歌分析的混合物,如果你在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
Jake的鏈接查理Arehart的cf411網站是理想的。看看所有的選項,但....我不能推薦CFTracker足夠高。奇妙的免費軟件。 – 2011-03-01 23:51:16