Weblogic故障保留现场操作
一、console查看项
- 实例的运行状态,看运行是否正常
1)Warning可能是有STUCK线程,去日志中查找STUCK线程信息,查找是什么操作执行时间长,联系应用进行优化。
2)Overloaded可能是数据源过载导致,会在实例的运行状态中显示Overloaded。
3)Unknown状态是Adminserver检测不到被管节点的状态、需要重启Adminserver进行重新检测。
4)Shutdown实例停掉了,需要看日志是什么原因导致实例挺停掉,如内存溢出或者系统崩溃等。
2.应用的运行状态,看运行是否正常,并测试应用是否可以访问。
3. 数据源的运行状态, 看运行是否正常
1) Suspended 数据源挂起,先在数据源的控制中进行恢复,看是否能恢复,检查数据源各项配置是否这正确,然后联系数据库老师对数据库进行查看是否有异常。
2)Overloaded连接池超载,看数据源的资源使用情况,主要看当前活动连接计数、最大活动连接计数、当前容量、当前等待连接计数、泄露连接计数,先看检测泄露的配置是否有打开,然后看是否有泄露。同时在通过java_home/bin/jstack -l pid > thread.hprof做线程快照,并查看访问日志,和线程的使用情况(是否有大量的独占线程会STUCK线程),来确定Overloaded的原因,是因为泄露占用资源还是大量访问还是sql执行过慢导致。
二、服务器上检查项
1.主机内存和jvm内存
通过命令 “java_home/bin/jmap -heap pid”查看jvm内存使用情况,如果jvm内存使用很多,用“ java_home/bin/jmap -dump:live,format=b,file=name.hprof pid”做内存快照,同时用 java_home/bin/jstack -l pid > name.hprof 做线程快照,然后进行分析,如果内存过高严重影响应用使用,做完快照后进行重启。
2.cpu
通过top命令查看cpu的使用情况,如果发现有高cpu的进程通过top -Hp pid查看该进程下的高cpu线程,记录好高cpu线程号,同时再做线程快照,再通过线程号去线程快照中找对应的线程,查找导致高cpu的操作,让应用进行优化。
3.磁盘
通过df –h 查看磁盘的使用,是都有被占满路径。
4.gc情况
查看gc日志,看gc暂停时间是否很长,也可以从gc日志中看出jvm内存的使用情况。
5.open files
通过ulimit –a 查看当前用户的open files限制,然后再通过 lsof –u user | wc –l 查看user用户open files是否超过限制,如果open files设置过小会导致该用户无法打开新的文件。