WebLogic监控的目的:发现系统中的隐患及系统运行是否稳定。主要从以下几个方面进行检查。
1.操作系统检查
检查系统CPU、内存和I/O等使用是否异常。如在负载不大的情况下,CPU是否一直居高不下,内存占用和I/O是否一直很大。
可以通过top、vmstat、ps等命令查看。
2.网络检查
a) 位于一个domain中的各个服务器是否能够联通。
b) WebLogic服务器与数据库服务器的链接是否畅通。
c) 集群环境的多播通信是否正常。
3.WebLogic检查
a) 检查是否对JVM进行了优化,如最大堆内存、最小堆内存以及GC算法是否合理。
b) 检查GC是否正常。主要是用过WebLogic控制台查看JVM的空闲内存的变化情况、每次GC的回收情况。特别是可以再控制台强制垃圾回收,看看回收的内存是否太小。如果回收的内存太小,说明可能存在内存泄露隐患。还可以在服务器的启动脚本中添加GC日志,从GC日志中查看GC的回收情况是否正常。
c) 检查线程数。通过WebLogic控制台可以查看线程数的统计信息。WebLogic9以上的版本的线程是自动化的。到哪应该查看系统的线程最大数是否过大,如果超过100了,就要注意系统为什么会有这么大的压力了。
d) 线程是否有stuck状态。线程stuck状态说明存在超时的线程,也有可能存在线程的死锁。在查看线程数的时候,查看stuck线程统计一栏是否大于0.如果stuck的线程一直大于0,就要查看系统的运行状态、JVM进程的状态和内存使用率是否正常等。如果有Thread dump文件,或java core文件,就可以分析服务器线程之间是否存在死锁,以及哪些线程处于stuck状态。产生Thread dump,可以通过kill -3 <wls_pid>来解决。
e) JDBC连接池。检查连接池中等待连接的数目是否过大,可以做适当调整。如果用户访问系统变慢,且连接池基本占满,但是WebLogic的线程数量很少,就要怀疑应用是否没有释放数据库连接。
f) 系统日志。通过系统的日志分析WebLogic服务器及应用程序出现的错误,找到可能影响系统性能的服务器和应用的地方。