【发布时间】:2014-11-04 22:06:28
【问题描述】:
我正在使用WLST 监控Weblogic 10.3 域中所有托管服务器上的Java 堆使用情况。我编写了一个 Jython 脚本来实现这一点。此脚本首先登录到域中的管理服务器。以下是获取每个托管服务器的堆统计信息的代码 sn-p:
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
我想知道为什么管理控制台显示的内容与上述代码的输出存在差异。我正在尝试确定我是否正在寻找正确的位置并调用正确的方法调用 (listed here in the docs) 以获取每个托管服务器上的堆统计信息。
我确信脚本运行的时间也是一个因素。想知道管理控制台刷新这些表的频率。
【问题讨论】:
标签: monitoring jython weblogic-10.x heap-memory wlst