我使用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
我想知道为什么管理控制台显示的内容与上述代码的输出存在差异。我试图确定我是否正在寻找正确的位置并调用正确的方法调用(listed here in the docs)以获取每个受管服务器上的堆统计信息。
我确信脚本运行的时间也是一个因素。想知道管理控制台刷新这些表的频率。
答案 0 :(得分:1)
我看不出你的方法有什么问题。除非您单击表格左上角的自动刷新图标(两个箭头形成一个圆圈),否则管理控制台页面不会自动更新。默认情况下,刷新间隔为10秒,但可以从“首选项”页面设置 - 链接位于每个页面的横幅上。
我在管理服务器和托管服务器上都尝试过,只要我将代码运行到接近刷新的位置,数字就会被绑定。我只能假设在控制台显示数据和脚本运行之间运行垃圾收集。