包头社保系统问题全面诊断报告.docx
《包头社保系统问题全面诊断报告.docx》由会员分享,可在线阅读,更多相关《包头社保系统问题全面诊断报告.docx(24页珍藏版)》请在冰豆网上搜索。
包头社保系统问题全面诊断报告
包头社保系统问题全面诊断报告
工程师:
赵欣
报告生成日期:
2010-4-8
Note:
Note:
Note:
Note:
Toaddadditionalapprovallines,Press[Tab]fromthelastcellinthetableabove.
Note:
Youcandeleteanyelementsofthiscoverpagethatyoudonotneedforyourdocument.Forexample,CopyNumberisonlyrequiredifthisisacontrolleddocumentandyouneedtotrackeachcopythatyoudistribute.
一系统整体架构描述:
包头社保数据中心主要有3个主要的逻辑子系统组成,分别是:
中间件应用集群服务器子系统,数据库集群子系统,存储子系统。
这3个子系统的功能及实施配置情况如下:
(1)中间件应用集群服务器子系统:
由两台IBM P570组成应用集群,应用服务器为Weblogic9,其中在应用服务器S1和S2上分别同时部署运行医保结算系统和中心端业务系统,该子系统的主要功能是提供应用业务系统的运行环境,支撑客户端使用业务系统。
(2)数据库集群子系统:
由两台IBMP570组成Oracle数据库RAC集群,数据库版本为“OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-64bi”,该子系统的主要功能是提供业务数据的7*24的操作与管理以及保证业务数据安全。
(3)存储子系统:
由IBMDS-8000存储设备组成,主要功能是提供数据的存储以及高效的数据读写。
二中间件应用集群服务器子系统问题排查:
(1)问题分析:
影响中间件服务器性能参数:
参数名称
原先设置
分析结果
JVMheapSize
1G
满足应用需要,没有问题
数据库连接池初始连接数
1
太低,不满足应用需要
数据库连接池最大连接数
15
太低,不满足应用需要
数据库连接池连接增长数
1
太低,不满足应用需要
根据以上对影响中间件服务器性能参数的分析,可以看出JAVA虚拟机内存参数配置(JVMheapSize)没有问题,并且可以满足应用需要;数据库连接池相关参数的配置太小,不满实际应用需要,建议要根据实际情况进行调整。
(2)问题解决方案:
通过分析实际应用情况以及业务高峰期的并发用户数,对数据库连接池参数作出了如下调整:
数据库连接池初始连接数调整为:
50
数据库连接池最大连接数调整为:
100
数据库连接池连接增长数调整为:
5
三数据库集群子系统问题排查:
(1)内存使用问题分析与排查:
基本内存使用参数配置:
参数名称
参数作用
参数值
分析结果
sga_target
决定系统全局区SGA的大小,由于大部分操作
都要在SGA中完成,所以该参数对数据库的
性能起到决定性的作用。
5G
略显小
sga_max_size
决定SGA最大可以设置为多少
5G
略显小
pga_aggregate_target
决定用户全局区PGA的大小,该参数决定是否
用户的大量计算可在内存中完成,因此该参数
对数据库性能也起到非常关键的作用。
1G
可以满足需要,
建议再调大一些
基本内存使用情况指标:
指标项
检查该指标所依据的脚本命令
检查结果
分析结果
建议操作
DataBufferCache命中率
select1-(phy.VALUE-lob.VALUE-dir.VALUE)/ses.VALUE"BufferCacheHitRatio"
fromv$sysstatses,v$sysstatlob,v$sysstatdir,v$sysstatphy
whereses.NAME='sessionlogicalreads'
anddir.NAME='physicalreadsdirect'
andlob.NAME='physicalreadsdirect(lob)'
andphy.NAME='physicalreads';
98%以上
基本满足要求,理想状态应该达到99%以上。
主要的原因可能是由于SGA大小略显小的缘故。
由系统集成人员适当调整SGA大小。
调整时要参考最大可用内存数,建议该参数值应该在8G以上。
SharePool中liberarycache命中率
SELECTSUM(PINHITS-RELOADS)/SUM(PINS)"HITRADIO",
SUM(RELOADS)/SUM(PINS)"RELOADPERCENT"
FROMV$LIBRARYCACHE;
98%以上
满足要求,不过重载率为0.26%略显高,可能会影响系统SQL语句软解析度
系统SQL语句软解析度
select((t1.value-t2.value)/t1.value)*100
from(selectvalue
fromv$sysstat
wherenamelike'parse%'
andnamein('parsecount(total)'))t1,
(selectvalue
fromv$sysstat
wherenamelike'parse%'
andnamein('parsecount(hard)'))t2;
93%
过低,作为一个具有高并发访问量的联机在线事务系统来说,SQL语句的软解析度应该在98%以上,最低不能低于97%。
建议排查频繁被使用功能的程序代码,看一下是否合理使用了绑定变量。
查询PGA工作状态信息
selectnameprofile,
cnt,
decode(total,0,0,round(cnt*100/total))percentage
from(selectname,valuecnt,(sum(value)over())total
fromv$sysstat
wherenamelike'workareaexec%');
100%工作于optimal状态
满足要求
查看内存与硬盘的排序比例
selectd.VALUEDisk,m.VALUEMem,(d.VALUE/m.VALUE)Ratio
fromv$sysstatm,v$sysstatd
wherem.NAME='sorts(memory)'andd.name='sorts(disk)';
基本全部属于内存排序
满足要求
(2)I/O问题分析与排查:
基本I/O参数配置:
参数名称
参数作用
参数值
分析结果
db_file_multiblock_read_count
控制数据库多块读取时一次最多读多少数据块
16
建议调整到32
log_archive_max_processes
控制归档进程最大数
3
满足要求
db_writer_processes
控制数据库写操作进程数量
2
根据当前数据库数据文件数量,该值显得略低,建议调高
disk_asynch_io
控制数据库是否使用异步I/O
true
满足要求
数据库I/O使用指标:
指标项
检查该指标所依据的脚本命令
检查结果
分析结果
建议操作
检查数否存在磁盘I/O瓶颈
selectevent,total_waits,time_waited,total_timeouts,average_wait
fromv$system_eventt
whereeventin
('logfileswitchcompletion',
'logfileswitch(checkpointincomplete)',
'logfileswitch(archivingneeded)',
'controlfileparallelwrite',
'logfileparallelwrite');
系统中存在比较频繁的引发增量检查点的操作,致使CKPT进程过于繁忙,引发了一定I/O压力
基本满足要求,但增量检查点引发过于频繁
检查频繁使用的程序,是否存在频繁执行Commit的情况。
Commit操作要尽量使用批量提交,本着以事务单元为提交的准则。
(3)资源竞争问题分析与排查:
资源竞争相关基本参数设置
参数名称
参数作用
参数值
分析结果
log_checkpoint_timeout
指定距下一个检查点出现的最大时间间隔(秒数)。
1800
满足要求
Undo_retention
用来指定要在数据库中保留的已提交的撤消信息的时间
900
满足要求
Processes
指定可同时连接到一个OracleServer上的操作系统用户进程的最大数量
1000
满足要求
Open_cursors
指定一个会话一次可以打开的游标(环境区域)的最大数量,并且限制PL/SQL使用的PL/SQL游标高
速缓存的大小,以避免用户再次执行语句时重新进行语法分析。
3000
满足要求
Dml_locks
所有用户获取的表锁的最大数量
4860
满足要求
数据库事务锁问题:
指标项
检查该指标所依据的脚本命令
检查结果
分析结果
建议操作
事务锁情况
SELECTT1.*,T2.SQL_TEXT,T2.SQL_FULLTEXT
FROM(SELECTB.SQL_ID,
B.SID,
B.MACHINE,
C.OBJECT_NAME,
A.ORACLE_USERNAME,
A.LOCKED_MODE,
B.OSUSER,
'altersystemkillsession'''||B.SID||','||B.SERIAL#||
''';'
FROMV$LOCKED_OBJECTA,V$SESSIONB,ALL_OBJECTSC
WHEREA.SESSION_ID=B.SID
ANDA.OBJECT_ID=C.OBJECT_ID)T1,
V$SQLAREAT2
WHERET1.SQL_ID=T2.SQL_ID;
在数据库中长时间存在事务锁,在等待事件中长时间存在enq:
TX-rowlockcontention事件。
长时间存在事务锁定的表为:
KC04、KC21、KC22、
KC23、KC24、KC29
操作上述表并引起锁的SQL语句如下:
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
UPDATEKC21SETAAE100='0',AAE011=:
B6,AAE036=SYSDATE,AKC384=:
B5,AKC380=:
B4,AKC381=:
B3,AKC319='0',OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAKB020=:
B2ANDAKC190=:
B1ANDAKA135='1'ANDAAE100='1'
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
BEGINPKG_K_SIINTERFACE.PRC_K_SIINTERFACE(:
1,:
2,:
3,:
4,:
5,:
6);END;
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
UPDATEKC04SETAKC317=:
B3,OAE300=PKG_A_COMM.FUN_GETOAE300,OAE301=OAE300WHEREAAC001=:
B2ANDAAE001=:
B1
建议认真排查相关程序代码,找到引起长时间事务锁的原因,并修改
(4)OracleRAC节点间通讯及竞争监控:
指标项
检查该指标所依据的脚本命令
检查结果
分析结果
建议操作
ClobalCacheService等待事件
SELECTINST_ID,EVENT,
P1FILE_NUMBE,
P2BLOCK_NUMBER,
WAIT_TIME
FROMGV$SESSION_WAIT
WHEREEVENTIN('gcbufferbusy','globalcachebusy');
没有发生
满足要求
节点间一致性读(CR)效率,Oracle建议如果avgreceivetime小于10ms,说明CR效率正常
SELECTB1.INST_ID,
B2.VALUE"received",
B1.VALUE"receivedtime",
((B1.VALUE/B2.VALUE)*10)"avgreceivetime(ms)"
FROMGV$SYSSTATB1,GV$SYSSTATB2
WHEREB1.NAME='gccrblockreceivetime'
ANDB2.NAME='gccrblocksreceived'
ANDB1.INST_ID=B2.INST_ID;
avgreceivetime为0.6ms
满足要求
节点间Current读效率,Oracle建议avgreceivetime小于15ms,则CurrentRead效率正常
SELECTB1.INST_ID,
B2.VALUE"received",
B1.VALUE"receivedtime",
((B1.VALUE/B2.VALUE)*10)"avgreceivetime(ms)"
FROMGV$SYSSTATB1,GV$SYSSTATB2
WHEREB1.NAME='gccurrentblockreceivetime'
ANDB2.NAME='gccurrentblocksreceived'
ANDB1.INST_ID=B2.INST_ID;
avgreceivetime为1ms
满足要求
(5)其他一些影响数据库性能参数的设置:
参数名称
参数作用
参数值
分析结果
optimizer_index_cost_adj
在成本优化情况下的SQL执行时转化成使用索引访问的百分比
100
值过高可能会引发索引被弃用,建议设为25
optimizer_index_caching
在缓冲区高速缓存中期望用于嵌套循环联接的索引块的百分比
0
对于联机事务系统值过低,应该调高,建议调整到90
query_rewrite_enabled
启用或禁用对实体化视图的查询重写
true
满足要求
optimizer_mode
成本优化器模式
ALL_ROWS
满足要求
四、存储子系统问题排查:
个数据表空间使用情况检查:
检查依据的命令脚本:
selectb.file_id文件ID号,
b.tablespace_name表空间名,
b.bytes/1024/1024||'M'字节数,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M'已使用,
sum(nvl(a.bytes,0))/1024/1024||'M'剩余空间,
100-sum(nvl(a.bytes,0))/(b.bytes)*100已使用空间百分比
fromdba_free_spacea,dba_data_filesb
wherea.file_id=b.file_id
groupbyb.tablespace_name,b.file_id,b.bytes
orderbyb.file_id;
表空间名
字节数
已使用
剩余空间
已使用百分比
SYSTEM
1020M
1001.875M
18.125M
98.22303922
UNDOTBS1
10235M
191.0625M
10043.9375M
1.866756229
SYSAUX
1020M
956.0625M
63.9375M
93.73161765
USERS
4095M
4078M
17M
99.58485958
EXAMPLE
150M
77.6875M
72.3125M
51.79166667
UNDOTBS2
6809.0625M
42.9375M
6766.125M
0.630593419
USER_PUB
2000M
.0625M
1999.9375M
0.003125
USER_A
10100M
9363.625M
736.375M
92.70915842
USER_I
10100M
10024M
76M
99.24752475
USER_I
10100M
9444M
656M
93.5049505
USER_I
10100M
9852M
248M
97.54455446
USER_K
10100M
9742.0625M
357.9375M
96.45606436
USER_K
10100M
10049.0625M
50.9375M
99.49566832
USER_R
10100M
8167.0625M
1932.9375M
80.86200495
USER_KC21
10100M
1538.1875M
8561.8125M
15.22957921
USER_KC22
10100M
10041.4375M
58.5625M
99.42017327
USER_KC22
10100M
8963.8125M
1136.1875M
88.75061881
USER_KC22
10100M
10040.5M
59.5M
99.41089109
USER_KC23
10100M
600.25M
9499.75M
5.943069307
USER_KC24
10100M
2604.5625M
7495.4375M
25.78774752
USER_DRM
10100M
13.6875M
10086.3125M
0.135519802
HNLMDATA
10100M
1.0625M
10098.9375M
0.010519802
HNLMDATA
10100M
1.0625M
10098.9375M
0.010519802
HNLMDATA
10100M
2.0625M
10097.9375M
0.020420792
INDX_PUB
2000M
.0625M
1999.9375M
0.003125
INDX_SIMIS
4040M
.3125M
4039.6875M
0.007735149
INDX_A
4040M
419.4375M
3620.5625M
10.38211634
INDX_F
10100M
10051M
49M
99.51485149
INDX_I
10100M
9557M
543M
94.62376238
INDX_I
10100M
9586.0625M
513.9375M
94.9115099
INDX_K
4050M
1297.5625M
2752.4375M
32.03858025
INDX_R
950M
.5625M
949.4375M
0.059210526
INDX_AC13
10100M
10042.875M
57.125M
99.43440594
INDX_KC21
10100M
680.3125M
9419.6875M
6.735767327
INDX_KC22
10100M
2178.25M
7921.75M
21.56683168
INDX_KC22
10100M
6657.4375M
3442.5625M
65.91522277
INDX_KC22
10100M
6673.9375M
3426.0625M
66.07858911
INDX_KC23
10100M
576.125M
9523.875M
5.704207921
INDX_KC24
10100M
640.375M
9459.625M
6.