Weblogic Console监控
1、作用
一般来说,Weblogic Console监控jvm的使用、执行线程队列情况、和连接池的变化情况,还有一个很重要的检查weblogic的console日志这里经常能反映一些很重要到情况。
2、监控方法
(1)管理控制台监视
通过管理控制台,可以对WebLogic的性能以及运行状况,发布的应用,资源等进行监视。
下面列举部分用来管理WebLogic的监视页面来简要说明管理控制台所提供的监视功能。
服务器->监视->常规,该页面显示了服务器的当前状态。高级选项里还显示了WebLogic 版本,JDK的提供商,版本,操作系统的版本等信息。最后从这个页面,还可以访问JNDI 树、监视活动队列、监视连接以及监视活动套接口。
服务器->监视->常规->监视所有活动队列,执行队列的配置对WebLogic 性能是很重要的,根据经验值,一颗CPU可以配置25-30之间的执行线程。从该页面可以查看到已经分配给队列的执行线程数,当前空闲的线程数,最长等待请求放入队列中的时间,队列中的等待请求数,此队列已处理的请求数等重要信息,这些信息可以作为判断是否需要对执行线程调整的参考。
服务器->监视->性能,从该页面中可以了解WebLogic 服务器性能的基本情况,包括空闲线程数,等待处理的请求数,JVM的内存堆使用状态等。
部署->应用程序->EAR模块->监视,当应用程序部署运行后,可以监视单一组件,如EJB,Servlet等,该页面提供了发布的应用程序中EJB的统计信息,可以有效了解EJB处理请求的效率。
服务->JDBC->连接缓冲池->监视,在控制台中可以监视资源的运行的状态,如JDBC等。该页面提供了JDBC连接缓冲池的统计信息,包括连接缓冲池可包含的最大数据库连接数,当前使用的物理数据库连接数,当前使用的物理数据库连接数等信息。
(2)运用命令行工具监视
命令行工具可以使用特殊命令(GET、 SET、CREATE、INVOKE、 DELETE 和 QUERY)直接操纵底层 JMX 基础结构。这使命令行工具可以访问管理控制台所有可用的功能,甚至还为访问某些功能提供了更灵活的方法。
具体运用过程是使用Java命令,调用weblogic.Admin这个java类。在运用该工具时,需要设定环境变量,指定java命令路径及weblogic包的类路径。使用weblogic.Admin工具的语法如下:
java weblogic.Admin [ [-url | -adminurl] [protocol://] listen-address:port] -username username [-password password] COMMAND-NAME arguments
在上面的命令语法中,username和password表示用户名和密码,url表示运行命令的服务器实例的监听地址和监听端口,adminurl表示管理服务器可以检索域中任何服务器实例的本地配置 MBean 或运行时 MBean,COMMAND-NAME表示具体执行的特殊命令(GET、 SET、CREATE、INVOKE、 DELETE 和 QUERY),arguments表示命令的参数。实际运用的一条命令如下:
java weblogic.Admin -username weblogic -password weblogic -url localhost:7001 GET -pretty -type JVMRuntime
需要留意的是最后的命令参数 –type,指定了想获得信息的资源(如果是某个具体的Mbean,使用-mbean 参数,-type是所指定类型的实例的所有 MBean 进行操作),该参数的获取规则是:在WebLogic Server 8.1 API Reference查找 MBean 的接口类,并从类名中删除 MBean 后缀。对于为 weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean 的实例的 MBean,使用 JDBCConnectionPoolRuntime。 对于本地配置 MBean,将 Config 追加到名称中。例如,对于为 weblogic.management.configuration.JDBCConnectionPoolMBean 接口类的实例的本地配置 MBean,使用 JDBCConnectionPoolConfig。对于对应的管理 MBean 实例,使用 JDBCConnectionPool。
(3)编程Mbean自定义监视
Mbeans实质上是一个java类,那么肯定可以编程使用,于是就可以编程实现自定义监视。
MBeanHome home = (MBeanHome) new InitialContext().lookup(MBeanHome.LOCAL_JNDI_NAME);
Set pools = home.getMBeansByType("JDBCConnectionPool");
上面的代码片段是对于JDBC连接缓冲池的配置mbean的操纵的核心部分。得到该mbean实例后可以得到各种weblogic能够提供的关于JDBC连接缓冲池配置信息,实现自定义监视。
(4)使用第三方工具监视
BEA WebLogic Server作为一种广泛运用的Java应用服务器,有大量第三方软件可以运用,包括HP-Mercury LoadRunner、QUEST等,详细的使用方法见其产品文档。
3、监控指标
JMSRuntime
JMSServersCurrentCount 返回当前JMS服务的连接数
ConnectionsCurrentCount 返回本JMS服务器上当前的连接数
JMSServersHighCount 返回自服务器启动后JMS服务的最大连接数
ConnectionsHighCount 返回本JMS服务器自上次重置后的最大连接数
JVMRuntime
HeapSizeCurrent 返回当前JVM堆中内存数,单位时字节
HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节
ExecuteQueueRuntime
ExecuteThreadCurrentIdleCount 返回队列中当前空闲线程数
PendingRequestOldestTime 返回队列中最长的等待时间
PendingRequestCurrentCount 返回队列中等待的请求数
Queue Length 队列长度
JDBCConnectionPoolRuntime
WaitingForConnectionHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数
WaitingForConnectionCurrentCount 返回当前等待连接的总数
MaxCapacity 返回JDBC池的最大能力
WaitSecondsHighCount 返回等待连接中的最长时间等待者的秒数
ActiveConnectionsCurrentCount 返回当前活动连接总数
ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大活动连接数