WEB应用访问缓慢的问题定位 (2)

awr-分析报告3

2、如果页面能正常访问,添加记录或者更新网页卡住不动:

网页访问和列表加载正常,此刻很有可能存在oracle锁表的情况,通过下面的sql执行,找到被锁的表

select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid;

找到被锁的表

oracle锁表7-4.png

通过下面sql定位到锁表的sql语句

SELECT A.USERNAME, A.MACHINE, A.PROGRAM, A.SID, A.SERIAL#, A.STATUS, C.PIECE, C.SQL_TEXT FROM V$SESSION A, V$SQLTEXT C WHERE A.SID IN (SELECT DISTINCT T2.SID FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID) AND A.SQL_ADDRESS = C.ADDRESS(+) ORDER BY C.PIECE;

将找到的sql提交给研发,判断该sql语句是人为锁定的还是程序未提交导致的!

image-20210703163738092

如果需要,可以通过下面的sql进行解锁

alter system kill session '68,51'; --分别为SID和SERIAL#号 3、如果排除oracle和sql的问题,那么进一步排查应用服务器的问题

1)调整程序连接的最大线程数和排队请求数

​ tomcat:将maxThreads="800" acceptCount="1000"调整为800和500代表允许最大线程数为800,可以同时处理800个请求,如果超 过800个线程,接受排队500个请求!

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="800" acceptCount="500"/>

​ weblogic:

进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General——点击Advanced Options的Show链接——最下面的Configure Execute Queues 链接——weblogic.kernel.Default链接——Thread Count参数。的却是隐藏的比较深。修改Thread Count的值,然后重启WebLogic就可以生效了。

2)根据服务器的内存大小,调整tomcat的内存,最大不超过应用服务器内存的60%

​ tomcat:

在“echo"UsingCATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m" weblogic: 直接修改user_projects\domains\base_domain\bin下的startWebLogic.cmd文件 在它下面添加一下代码 set JAVA_OPTIONS=-Xms256m –Xmx256m;

3)根据tomcat的catalina.log的具体报错反馈给开发进行查询,需要根据的实际报错

4)服务器重启大法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsgpf.html