Orale10g+WebSphere7问题分析报告.docx
《Orale10g+WebSphere7问题分析报告.docx》由会员分享,可在线阅读,更多相关《Orale10g+WebSphere7问题分析报告.docx(21页珍藏版)》请在冰豆网上搜索。
![Orale10g+WebSphere7问题分析报告.docx](https://file1.bdocx.com/fileroot1/2022-11/27/eec54d0f-e3d6-4013-a8a7-92af0bdd691b/eec54d0f-e3d6-4013-a8a7-92af0bdd691b1.gif)
Orale10g+WebSphere7问题分析报告
中国通服浙江公司PM2项目管理系统问题分析
内
部
文
档
中数通信息有限公司
版本:
1.1
编制人:
曾苗奎审核人:
审批人:
日期:
2014-02-20日期:
日期:
版本修订历史记录:
版本
日期
修改内容
作者
1.0
2014-02-20
初稿
曾苗奎
1.1
2014-03-07
整理完善
曾苗奎
1引言3
1.1编写目的3
1.2面向读者3
1.3前提条件3
2背景概述4
3网络4
3.1网络连通检查4
3.2路由检查4
4硬件5
4.1服务器指示灯检查5
4.2服务器日志检查5
5操作系统5
5.1系统信息5
5.2文件系统是否已满6
5.3检查系统出错日志6
5.4检查系统合法/非法登录情况6
5.5检查系统是否有巨大的core文件生成6
5.6系统性能检查7
6应用检查7
6.1可用性检查7
6.2系统响应时间检查8
7Web服务器8
8中间件服务器9
8.1WebSphere应用服务器9
9Oracle数据库10
9.1数据库配置情况10
10数据库文件信息11
11表空间信息11
12Alert日志文件信息12
13分析statspack/awrrpt报告13
13.12014-2-20报告13
13.22014-2-24报告16
13.32014-3-7报告17
14Oraclev$session_longops视图检查17
14.1超过60S的执行时间的语句17
14.2其它几个执行时间比较长的语句21
15SGA内存使用22
16总结22
16.1迫切需要解决的问题22
16.2需要在将来改进的方面24
1引言
1.1编写目的
本文档主要为排查系统问题,分析记录相关操作和操作过程,减少系统性能故障,保证系统和产品的稳定,提升用户体验和满意度。
1.2面向读者
项目管理人员,项目开发人员,项目相关人员。
1.3前提条件
读者需要对以下知识有所了解:
AIX,Nginx,WebSphere,Oracle等。
2背景概述
浙江公司PM2项目管理系统用户使用出现慢,有时出现系统不能响应。
影响客户使用,出现宕机情况。
3网络
3.1网络连通检查
Ping
3.2路由检查
Tracert(windows)或Traceroute(linux)
4硬件
4.1服务器指示灯检查
进入机房,检查服务器LED指示灯状态,如闪烁绿灯为正常状态,如出现黄灯长亮或闪烁,表明服务器或阵列有可能出现问题,需联系相关厂家。
4.2服务器日志检查
以root用户登陆服务器,运行命令errpt–dH,检查最近的时间是否有出现硬件报错。
5操作系统
5.1系统信息
信息项
说明
主机名
xmgldata2_per
IP
10.195.1.107
内存
32
CPU
4*3.8GHz
本地硬盘
外部存储
磁盘阵列
OS&Version
AIX5.3
DB版本
EnterpriseEditionRelease10.2.0.4.0-64bitProduction
应用
其他
无
数据库名
Pm2db
实例名
Pm2db
5.2文件系统是否已满
使用df-k命令可以以k为单位检查文件系统的使用率。
5.3检查系统出错日志
使用errpt|more命令检查,
errpt -d H 列出所有硬件出错信息
errpt -d S 列出所有软件出错信息
如要清除现有的log,errclear0。
5.4检查系统合法/非法登录情况
使用last命令检查登录地点。
5.5检查系统是否有巨大的core文件生成
使用find/-namecore-print命令检查。
5.6系统性能检查
以db2ora用户登陆服务器,运行nmon-f-s3-c1200命令以3秒为间隔,取1小时的服务器性能数据,把取得的文件下载进行分析。
6应用检查
6.1可用性检查
通过以下3个层面的页面访问,检查应用可用性。
●域名
●Ip
http:
//10.195.1.113/pm2/
●Ip+端口
http:
//10.195.1.112:
9088/pm2/
http:
//10.195.1.112:
9084/pm2/
http:
//10.195.1.113:
9082/pm2/
http:
//10.195.1.112:
9084/pm2/
如果域名方式访问异常,可能是域名解释等dns相关问题;
如果ip方式访问异常,可能是httpserver异常;
如果ip+端口方式访问异常,可能是应用服务器有问题。
6.2系统响应时间检查
通过detect组件,进行连接池、页面监控,使用以下连接,打开各个server的监控页
http:
//10.195.1.112:
9088/pm2/detect
http:
//10.195.1.112:
9084/pm2/detect
http:
//10.195.1.113:
9082/pm2/detect
http:
//10.195.1.112:
9084/pm2/detect
可以使用连接池监控、页面监控和页面频率这三个功能模块来进行监控。
●页面监控
检查是否存在长时间执行的页面,尤其是未关闭页面
●连接池监控
检查是否存在长时间执行的连接,尤其是未关闭的连接
●页面频率
检查页面平均响应时间是否偏大。
7Web服务器
检查配置文件相关参数是否有优化
检查日志文件
Access.log和error.log
2014-02-25,对中间件服务器的nginx服务进行检查
Nginx.conf配置:
有启用写日志功能
检查发现access.log日志比较大,目前已经1.8G,建议可以将定期清理日志或者关闭access.log的写日志功能
本次已经对access.log进行清理。
检查access.log发现统一工作平台获取用户待办数很频繁,并且很多请求的用户帐号是33001640(上午)和99000817(下午)
8中间件服务器
8.1WebSphere应用服务器
检查WAS日志文件
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/具体的server
SystemOut.log和SystemErr.log等
登录管理控制台检查JVM和线程数等是否有优化。
查看连接池等设置。
问题一、2014-02-1910:
30左右发现应用服务器日志出现大量线程挂起日志。
[14-2-1910:
32:
54:
647CST]0000005eThreadMonitorWWSVR0605W:
线程“WebContainer:
71”(000001fe)已保持活动状态760104毫秒,此线程可能已挂起。
在服务器中共有82个线程可能处于挂起状态。
atjava.lang.Object.wait(NativeMethod)
atjava.lang.Object.wait(Object.java:
167)
问题二、日志出现:
2014-03-0314:
52:
47,667-[ERROR][FormServiceImpl]-queryTablejerror:
select*fromSG_INNERSETTLEMENTleftjoingx_projectgpongp.resourceid=si.projectidwheresi.status='E'andsi.flgdeleted='N'andgp.resourceid='5e2ab6c54d5d4ed78fd78a74d9b223f2'[null]
java.sql.SQLSyntaxErrorException:
ORA-00904:
"SI"."PROJECTID":
invalididentifier
atoracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:
91)
atoracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:
112)
atoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:
173)
atoracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:
455)
JDBCExceptionEorg.hibernate.util.JDBCExceptionReporterlogExceptionsORA-00904:
"PROJECTQUA0_"."ISSCHEDULECREATE":
invalididentifier
...1254linesomitted...
java.sql.SQLSyntaxErrorException:
ORA-00904:
"GBA"."BUDGETEMPLATEID":
invalididentifier
...269linesomitted...
java.sql.SQLSyntaxErrorException:
ORA-00904:
"GBA"."BUDGETEMPLATEID":
invalididentifier
9Oracle数据库
9.1数据库配置情况
SGA
8G
PGA
4G
DB_BLOCKSize
8192
控制文件个数
3
日志文件大小
50M
日志组数目
3
每组日志文件成员数量
1
归档方式
ARCHIVEENABLE
并发用户量
1000
无效对象数量
30
select*fromdba_objectstwheret.status!
='VALID';--查看无效对象
10数据库文件信息
11表空间信息
SELECTUpper(F.TABLESPACE_NAME)"表空间名",
D.TOT_GROOTTE_MB"表空间大小(M)",
D.TOT_GROOTTE_MB-F.TOTAL_BYTES"已使用空间(M)",
To_char(Round((D.TOT_GROOTTE_MB-F.TOTAL_BYTES)/D.TOT_GROOTTE_MB*100,2),'990.99')
||'%'"使用比",
F.TOTAL_BYTES"空闲空间(M)",
F.MAX_BYTES"最大块(M)"
FROM(SELECTTABLESPACE_NAME,
Round(Sum(BYTES)/(1024*1024),2)TOTAL_BYTES,
Round(Max(BYTES)/(1024*1024),2)MAX_BYTES
FROMSYS.DBA_FREE_SPACE
GROUPBYTABLESPACE_NAME)F,
(SELECTDD.TABLESPACE_NAME,
Round(Sum(DD.BYTES)/(1024*1024),2)TOT_GROOTTE_MB
FROMSYS.DBA_DATA_FILESDD
GROUPBYDD.TABLESPACE_NAME)D
WHERED.TABLESPACE_NAME=F.TABLESPACE_NAME
ORDERBY1
12Alert日志文件信息
ThuFeb2002:
00:
012014
Errorsinfile/u02/app/db2oracle/admin/pm2db/bdump/pm2db_j000_1609886.trc:
ORA-12012:
erroronautoexecuteofjob81
ORA-06550:
line1,column96:
PLS-00905:
objectZJ_BPAF.SP_PROJFLOW_DATAisinvalid
ORA-06550:
line1,column96:
PL/SQL:
Statementignored
ThuFeb2002:
02:
012014
Errorsinfile/u02/app/db2oracle/admin/pm2db/bdump/pm2db_j001_2711644.trc:
ORA-12012:
erroronautoexecuteofjob81
ORA-06550:
line1,column96:
PLS-00905:
objectZJ_BPAF.SP_PROJFLOW_DATAisinvalid
ORA-06550:
line1,column96:
PL/SQL:
Statementignored
ThuFeb2002:
06:
012014
Errorsinfile/u02/app/db2oracle/admin/pm2db/bdump/pm2db_j000_2560092.trc:
ORA-12012:
erroronautoexecuteofjob81
ORA-06550:
line1,column96:
PLS-00905:
objectZJ_BPAF.SP_PROJFLOW_DATAisinvalid
ORA-06550:
line1,column96:
PL/SQL:
Statementignored
ThuFeb2002:
14:
012014
Errorsinfile/u02/app/db2oracle/admin/pm2db/bdump/pm2db_j001_2707688.trc:
ORA-12012:
erroronautoexecuteofjob81
ORA-06550:
line1,column96:
PLS-00905:
objectZJ_BPAF.SP_PROJFLOW_DATAisinvalid
ORA-06550:
line1,column96:
PL/SQL:
Statementignored
发现alert日志有个报错,凌晨2点执行SP_PROJFLOW_DATA存储过程报错,请确认此任务是否需要或修复这个错误。
此问题非关键问题。
可缓后处理。
13分析statspack/awrrpt报告
13.12014-2-20报告
登录数据库,生成数据库10到11点的awr报告,11点到12点的awr报告
具体生成步骤可参考相关文档
分析awr报告
Top5事件
10点到11点的awr报告显示:
10点到11点的awr报告显示:
都是enq:
TX-rowlockcontention的等待事件。
一般这个等待事件是不同的session更新或删除同一个记录时出现。
可能为应用处理问题。
Top5SQL
通过Top5的SQL看,
ElapsedCPUElapper%Total
Time(s)Time(s)ExecutionsExec(s)DBTimeSQLId
--------------------------------------------------------------
55,2691361535.296.78wgs2dcq1c9fp
Module:
JDBCThinClient
updategx_outerorgsetcreatetime=:
1,creatorname=:
2,creatorid=:
3,creatorin
dexid=:
4,belongcompanyid=:
5,belongcompanyname=:
6,lastmodtime=:
7,lastmodp
ersonid=:
8,lastmodperson=:
9,status=:
10,flgdeleted=:
11,outerorgname=:
12,
outerorgcode=:
13,relatedparty=:
14,outerorgtype=:
15,isautotrophy=:
16,org
ElapsedCPUElapper%Total
Time(s)Time(s)ExecutionsExec(s)DBTimeSQLId
--------------------------------------------------------------
80,6591810082.495.38wgs2dcq1c9fp
Module:
JDBCThinClient
updategx_outerorgsetcreatetime=:
1,creatorname=:
2,creatorid=:
3,creatorin
dexid=:
4,belongcompanyid=:
5,belongcompanyname=:
6,lastmodtime=:
7,lastmodp
ersonid=:
8,lastmodperson=:
9,status=:
10,flgdeleted=:
11,outerorgname=:
12,
outerorgcode=:
13,relatedparty=:
14,outerorgtype=:
15,isautotrophy=:
16,org
发现此sql的执行时间非常之长,在10:
00—11:
00的报告里,执行了8次,平均执行时间为:
10082.4秒.
根据sql_id(8wgs2dcq1c9fp)找出相应的sql:
通过查看完整的sql.发现update操作是通过resourceid去更新的,resourceid为主键,应该不存在问题。
导致执行要花这么长时间,是否为不同的session在更新同一个记录?
后检查原因为合同在上面建立触发器处理业务导致。
13.22014-2-24报告
通过2月24日awrrpt报告,发现如下sql也是执行比较慢:
Module:
oracle@zjcwdb (TNS V1-V3)
SELECT /*+ OPAQUE_TRANSFORM */ "H_TSQCBJ","H_ID","H_DWDM" FROM "TMP_HS" "FF" WHE
RE "H_TSQCBJ" IS NULL
执行时间也是花了533秒。
13.32014-3-7报告
生成3月7日,早上8点到9点,9点到10点,14点到15点的awrrpt报告进行分析。
数据库没有出现明显的等待事件,大部分sql执行的时间也都在5秒以下。
但还是有部分语句执行时间相对比较长一点,虽执行次数不多。
执行一次,11.38秒
执行两次,7.51秒
执行4次,7.4秒,看module,应该是财务系统在执行
14Oraclev$session_longops视图检查
14.1超过60S的执行时间的语句
通过对v$session_longops视图进行检查,发现执行时间比较长的sql主要为如下几个:
select*fromv$sqlareawheresql_id='071ct60tnmkb0';
updatePM_TMP_HS_FYXaaset(STATE,H_SJFYXID,H_YWYID,H_YWRQ,H_XMID,H_FYBMID,H_FYLXID,H_FPLX,H_FPHM,H_MXKSID,H_MONEY,H_TAX,H_WLKM,H_GLF,H_GLNR,H_SRDQFLID,H_SKID,H_KJND,H_KJQJ,H_PZMS,H_KMDM,H_JJBMID)=(select(casewhenp.stateisnullandgai.ishistorydataisnotnullthen'2'elsep.stateend)state,giii.childidH_SJFYXID,gai.creatoridH_YWYID,gai.predictpaidtimeH_YWRQ,giii.projectidH_XMID,giii.payingdeptidH_FYBMID,gs.resourceidH_FYLXID,giii.invoicetypeH_FPLX,giii.invoicecodeH_FPHM,giii.coopcomidH_MXKSID,gaii.confirmmoneyH_MONEY,0H_TAX,(casewhengaii.contactsubjectcodeisnotnullthengaii.contactsubjectcodeelsegiii.contactsubjectcodeend)H_WLKM,giii.relatedpartyH_GLF,giii.relatedpartycontentcodeH_GLNR,ge.incomeareaidH_SRDQFLID,nullH_SKID,(casewhenc.h_kjndisnullandgai.ishistorydataisnotnullthento_number(to_char(gai.predictpaidtime,'yyyy'))elsec.h_kjndend)H_KJND,(casewhenc.h_kjqjisnullandgai.ishistorydataisnotnullthento_number(to_char(gai.predictpaidtime,'mm'))elsec.h_kjqjend)H_KJQJ,c.h_pzmsH_PZMS,c.h_kmdmH_KMDM,nullH_JJBMIDfromgx_paymentauditgaiinnerjoingx_paymentaudit_itemgaiiongai.resourceid=gaii.parentidinnerjoingx_aseinvoice_itemgiiiongaii.invoiceitemid=giii.childidinnerjoingx_aseinvoicegiiongiii.paren