监视Weblogic Server上的Java堆使用情况

时间:2014-11-04 22:06:28

标签: monitoring jython weblogic-10.x heap-memory wlst

我使用Weblogic 10.3监控WLST域中所有托管服务器上的Java堆使用情况。我编写了一个Jython脚本来实现这一目标。此脚本首先登录到域中的管理服务器。以下是获取每个受管服务器的堆统计信息的代码段:

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管理控制台显示的不同。例如,对于托管服务器123

上面的代码将堆大小用法设为1.25GB,而管理控制台将堆用法显示为3GB

enter image description here

我想知道为什么管理控制台显示的内容与上述代码的输出存在差异。我试图确定我是否正在寻找正确的位置并调用正确的方法调用(listed here in the docs)以获取每个受管服务器上的堆统计信息。

我确信脚本运行的时间也是一个因素。想知道管理控制台刷新这些表的频率。

1 个答案:

答案 0 :(得分:1)

我看不出你的方法有什么问题。除非您单击表格左上角的自动刷新图标(两个箭头形成一个圆圈),否则管理控制台页面不会自动更新。默认情况下,刷新间隔为10秒,但可以从“首选项”页面设置 - 链接位于每个页面的横幅上。

我在管理服务器和托管服务器上都尝试过,只要我将代码运行到接近刷新的位置,数字就会被绑定。我只能假设在控制台显示数据和脚本运行之间运行垃圾收集。