2014-11-04 85 views
1

我正在使用WLST監控Weblogic 10.3域中所有受管服務器上的Java堆使用情況。我寫了一個Jython腳本來實現這一點。該腳本首先登錄到域中的管理服務器。以下是獲取每個受控服務器堆統計代碼片段:監控Weblogic服務器上的Java堆使用情況

def getServerJavaHeap(): 

    domainRuntime() 

    servers=domainRuntimeService.getServerRuntimes() 

    for server in servers: 
     free = int(server.getJVMRuntime().getHeapFreeCurrent())/(1024*1024) 
     freePct = int(server.getJVMRuntime().getHeapFreePercent()) 
     current = int(server.getJVMRuntime().getHeapSizeCurrent())/(1024*1024) 
     max  = int(server.getJVMRuntime().getHeapSizeMax())/(1024*1024) 
     print 'Domain Name     #', cmo.getName() 
     print 'Server Name     #', server.getName()  
     print 'Current Heap Size   #', current 
     print 'Current Heap Free   #', free 
     print 'Maximum Heap Size   #', max 
     print 'Percentage Heap Free   #', freePct 

堆的統計數據,上面的代碼獲取是從什麼WebLogic管理控制檯顯示不同。例如,對於管理server123

上面的代碼給堆大小用法1.25GB而管理控制檯顯示堆的用法作爲3GB

enter image description here

我想知道爲什麼會出現在什麼管理控制檯顯示的差異和上面代碼的輸出。我試圖確定我是否正在尋找正確的位置並調用正確的方法調用(listed here in the docs)以獲取每個受管服務器上的堆統計信息。

我相信腳本運行的時間也是一個因素。想知道管理控制檯刷新這些表的頻率如何。

回答

1

我看不出你的方法tbh有什麼問題。除非您單擊表格左上角的自動刷新圖標(形成圓圈的兩個箭頭),否則管理控制檯頁面將不會自動更新。默認情況下,刷新間隔爲10秒,但可以從「首選項」頁面設置 - 鏈接位於每個頁面的橫幅上。

我在管理服務器和託管服務器上都嘗試過,只要我的代碼接近刷新,數字就會被綁定。我只能假設在控制檯顯示數據和腳本運行之間運行垃圾收集。