Weblogic WLST检查永久发电机的使用情况

Weblogic WLST检查永久发电机的使用情况,weblogic,jython,permgen,wlst,Weblogic,Jython,Permgen,Wlst,我想使用WLST获取WL域中服务器的最大Perm Gen和使用率。 到目前为止,我能够看到有可能从JMX、mBean获得信息。 mBean位置是“java.lang:location=Server1,name=PS Perm Gen,type=MemoryPool” 我尝试了下面的代码,但似乎不起作用 testObject=ObjectName('java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool') 或者尝试下面的代码也不起

我想使用WLST获取WL域中服务器的最大Perm Gen和使用率。 到目前为止,我能够看到有可能从JMX、mBean获得信息。 mBean位置是“java.lang:location=Server1,name=PS Perm Gen,type=MemoryPool”

我尝试了下面的代码,但似乎不起作用

testObject=ObjectName('java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool')
或者尝试下面的代码也不起作用

testBean=getMBean('javax.management.openmbean.CompositeData:Location=Server1,name=Usage,type=PS Perm Gen')
for item in testBean:
    print item.getKey() + ':' + item.getValue()
请帮忙

更新:------------------------------------------------- 谢谢你的快速回复。目前还没有与我的主题相关的WLST代码可供分享,因为我正在尝试探索我搜索的可能性

基本上,在将人工制品部署到WL管理的服务器之前,我尝试在WLST运行中检查可用的Perm Gen大小

这是因为WebLogic不会将未部署工件的非堆内存空间从WL托管服务器中释放出来,如果您继续在不回收的情况下进行部署/取消部署,WL托管服务器最终将抛出永久性内存空间的OOME

我们正在尽可能减少服务中断,并尽可能长时间地保持WL管理服务器的运行。 我到处搜索了WLST mBean树位置,以获取非堆内存状态,但失败了

但如果使用JManage,则可以通过mBean对象“java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool”获得非堆内存状态

它将在JManage中显示如下所示:

Object Name java.lang:Location=Server1,name=PS Perm Gen,type=MemoryPool

Class Name sun.management.MemoryPoolImpl 
Description Information on the management interface of the MBean 
Configured Name       Add to Application  

所以我想知道,如果mBean存在,为什么不可能从WLST中提取mBean信息?因此,我正试图为任何有类似经历/情况的人寻求帮助。

我发现,您可以连接到托管服务器,然后使用类似以下内容:

permObjectName=ObjectName('java.lang:type=MemoryPool,name=PS Perm Gen')
usoPerm=mbs.getAttribute(permObjectName,'Usage')
usoPerm.get('max') #Returns MaxPermSize in bytes
usoPerm.get('used') #Returns used Perm Space in bytes

但是,我已经在多台服务器上测试了这一点,但并不总是有效,因为MBeanServer(mbs)无法“看到”“java.lang”mbean树。

Weblogic有不同的mbean层次结构,用于不同的目的。它将所有非weblogic MBean视为“自定义”,因此它们驻留在“自定义”树中。

要获取所连接机器的permgen使用情况,请执行以下操作:

cd('custom:/java.lang/java.lang:type=MemoryPool,name=PS Perm Gen')
permgen=get("Usage").get("used")
如果您连接到域管理员并希望获取其他服务器的信息:

cd('domainCustom:/java.lang/java.lang:Location='+servername+',name=PS Perm Gen,type=MemoryPool')
permgen=get("Usage").get("used")

你在哪里找到这个例子的?您可以从WLST获得通用堆使用情况,如下图所示:或者,谢谢,mkstemp,但正如您所知,这些是堆使用情况,Perm Gen内存在堆区域之外。您是否可以分享您的异常、错误堆栈,以便我们可以帮助查看weblogic关于“使用平台MBean服务器”的文档:看起来您必须位于custom()mbean树中