我的数据库是Oracle9i Enterprise Edition Release 9.2.0.4.0,以前一直没有问题,但最近出现了一个奇怪的问题:
现象:
1.应用程序在启动的时候需要加载一些数据到缓存中,以前,整个加载过程历时不到1分钟就可以结束,但昨天发现程序启动1个小时了,也没有加载完成。
2.我把数据库重起之后,数据库自身的线程占用内存下于100M,这时候程序运行状态非常好,但随着运行一段时间后,oracle自身的几个线程占用了小于300M的时候,我的程序从数据库中select的时候会非常慢,即使在sqlplus中也是这样
配置:
OS : AIX 4
Oracle : Oracle9i Enterprise Edition Release 9.2.0.4.0
Mem : 2G
Swap : 2G
系统情况:
这是当时的top情况:
top - 11:52:43 up 6 days,1:41,4 users,load average: 1.56, 1.79, 1.79
Tasks: 109 total, 1 running, 108 sleeping, 0 stopped, 0 zombie
Cpu(s):0.3% us,0.7% sy,0.0% ni, 49.1% id, 49.8% wa,0.0% hi,0.2% si
Mem: 2074808k total,2070516k used, 4292k free,40052k buffers
Swap:4096532k total,78024k used,4018508k free,1864304k cached
PID USERPRNIVIRTRESSHR S %CPU %MEMTIME+COMMAND
29924 oracle16 0477m 256m 254m S0.0 12.6 7:50.00 oracle
30952 oracle16 0477m 254m 252m S0.0 12.6 2:01.16 oracle
30946 oracle16 0476m 254m 252m S0.0 12.6 1:46.92 oracle
30916 oracle16 0477m 254m 252m S0.0 12.6 1:46.80 oracle
30924 oracle16 0477m 254m 252m S0.0 12.5 1:38.47 oracle
30948 oracle16 0476m 253m 252m S0.0 12.5 1:41.47 oracle
30950 oracle16 0477m 253m 251m S0.0 12.5 1:40.95 oracle
30928 oracle16 0476m 253m 251m S0.0 12.5 1:34.36 oracle
30936 oracle16 0477m 253m 251m S0.0 12.5 1:31.93 oracle
30977 oracle16 0477m 253m 251m S0.0 12.5 1:23.61 oracle
这是当时的vmstat情况:
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
rb swpd free buffcache si sobibo incs us sy id wa
0178024 418840096 1862960001936 294053 54 38
0178024 438039952 186284400 4412835 1579 967 337 26 34
0178024 438439976 186282000 0 613 1197 41001 50 50
0178024 432040008 186278800 0 567 1157 35700 49 51
9778024 420040016 18630400087 900 1280 51572 44 48
0178024 374440056 186352000 1591817 1441 676 204 35 41
0178024 375240064 186351200 0 635 1181 39200 50 50
1178024 375240096 186348000 0 649 1176 39100 49 50
0178024 369240112 186372400 0 589 1167 36001 50 50
0178024 362840136 186370000 0 580 1155 35100 50 50
从上面看top的时候,CPU,内存,负载都比较正常,只是vmstat的bi不太正常。
数据检查:
在sqlplus中使用 select sid,event,p1,p1text from v$session_wait
WHERE EVENT NOT LIKE 'SQL*Net%'; 的结果也比较正常
我的数据库配置:
*.aq_tm_processes=1
*.compatible='9.2.0.0.0'
*.db_block_size=4096
*.db_cache_size=33554432
*.db_domain=''
*.db_file_multiblock_read_count=8
*.fast_start_mttr_target=300
*.hash_join_enabled=FALSE
*.instance_name='NADDB'
*.java_pool_size=52428800
*.job_queue_processes=10
*.large_pool_size=102400000
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=200
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=184800000
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=900
请大侠们多多帮忙,帮我找一下问题,或者告诉应该怎么去找问题,我现在是头疼之及,Help me !!!
|