listener的内存泄漏
今天收到告警邮件,某省的数据库无法登录,在alertlog中有如下的报错:
Tue Mar 31 16:38:11 2009
Errors in file /oracle/app/oracle/admin/zjfs/bdump/zjfs_ora_22423.trc:
ORA-27102: out of memory
HPUX-ia64 Error: 12: Not enough space
Additional information: 103
Additional information: 524288
Errors in file /oracle/app/oracle/admin/zjfs/bdump/zjfs_ora_22423.trc:
ORA-27102: out of memory
HPUX-ia64 Error: 12: Not enough space
Additional information: 103
Additional information: 524288
登录数据库主机检查内存剩余量不到10%,用top检查:
System: zj-db01 Wed Apr 1 14:10:47 2009
Load averages: 0.12, 0.18, 0.28
387 processes: 362 sleeping, 25 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.21 8.4% 0.0% 7.0% 84.7% 0.0% 0.0% 0.0% 0.0%
1 0.09 3.4% 0.0% 2.4% 94.2% 0.0% 0.0% 0.0% 0.0%
2 0.11 3.4% 0.0% 0.0% 96.6% 0.0% 0.0% 0.0% 0.0%
3 0.10 3.2% 0.0% 1.0% 95.8% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- -----
avg 0.12 4.6% 0.0% 2.6% 92.8% 0.0% 0.0% 0.0% 0.0%
Memory: 4456068K (2521320K) real, 6115756K (3135960K) virtual, 391416K free Page# 1/15
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
0 ? 2307 oracle 178 20 3015M 24612K sleep 4383:34 15.11 15.08 oraclezjfs
2 ? 2228 oracle 178 20 2986M 9624K sleep 3580:19 2.94 2.93 oraclezjfs
1 ? 2309 oracle 178 20 2986M 5536K sleep 541:29 2.92 2.91 oraclezjfs
1 ? 4400 oracle 154 20 1375M 1340M sleep 11224:04 2.04 2.04 tnslsnr
1 ? 2528 oracle 178 20 2986M 5612K sleep 15:05 1.32 1.32 oraclezjfs
1 ? 4380 oracle 178 20 3009M 35136K sleep 268:00 1.16 1.16 ora_lgwr_zjfs
3 ? 4378 oracle 178 20 3009M 35152K sleep 244:54 0.74 0.74 ora_dbw0_zjfs
1 ? 54 root 152 20 3312K 2944K run 136:01 0.45 0.45 vxfsd
3 ? 1439 root 152 20 207M 84724K run 103:21 0.40 0.40 cimprovagt
3 ? 1442 root 152 20 38312K 2820K run 2725:46 0.36 0.36 cimprovagt
3 ? 12064 oracle 178 20 2986M 5264K sleep 0:20 0.32 0.32 oraclezjfs
2 ? 1436 root 152 20 56792K 13976K run 180:41 0.23 0.23 cimserver
3 pts/ta 21448 oracle 168 20 10836K 1284K sleep 0:00 0.22 0.22 top
2 ? 2381 oracle 178 20 2987M 5944K sleep 419:20 0.18 0.18 oraclezjfs
1 ? 38 root 152 20 432K 384K run 60:21 0.16 0.16 schedcpu
2 pts/tc 21573 oracle 178 20 10964K 1412K run 0:00 0.27 0.15 top
2 ? 21551 oracle 178 20 2986M 5260K sleep 0:00 0.16 0.14 oraclezjfs
3 ? 1793 root 152 20 113M 17208K run 6:09 0.14 0.14 vxsvc
0 ? 20 root 191 20 360K 320K run 33:43 0.13 0.13 ksyncer_daemon
2 ? 1429 root 152 20 25516K 5536K run 4:42 0.12 0.12 rpcd
1 ? 4297 root -27 20 46772K 38548K run 31:58 0.12 0.12 cmcld
2 ? 21518 oracle 178 20 2986M 5260K sleep 0:00 0.13 0.12 oraclezjfs
2 ? 1228 root 154 20 7812K 848K sleep 126:00 0.10 0.10 sendmail:
2 ? 39 root 191 20 288K 256K run 305:44 0.08 0.08 pagezerod
2 ? 1589 root 152 20 25072K 3992K run 1:20 0.08 0.08 swagentd
$
$
Load averages: 0.12, 0.18, 0.28
387 processes: 362 sleeping, 25 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.21 8.4% 0.0% 7.0% 84.7% 0.0% 0.0% 0.0% 0.0%
1 0.09 3.4% 0.0% 2.4% 94.2% 0.0% 0.0% 0.0% 0.0%
2 0.11 3.4% 0.0% 0.0% 96.6% 0.0% 0.0% 0.0% 0.0%
3 0.10 3.2% 0.0% 1.0% 95.8% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- -----
avg 0.12 4.6% 0.0% 2.6% 92.8% 0.0% 0.0% 0.0% 0.0%
Memory: 4456068K (2521320K) real, 6115756K (3135960K) virtual, 391416K free Page# 1/15
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
0 ? 2307 oracle 178 20 3015M 24612K sleep 4383:34 15.11 15.08 oraclezjfs
2 ? 2228 oracle 178 20 2986M 9624K sleep 3580:19 2.94 2.93 oraclezjfs
1 ? 2309 oracle 178 20 2986M 5536K sleep 541:29 2.92 2.91 oraclezjfs
1 ? 4400 oracle 154 20 1375M 1340M sleep 11224:04 2.04 2.04 tnslsnr
1 ? 2528 oracle 178 20 2986M 5612K sleep 15:05 1.32 1.32 oraclezjfs
1 ? 4380 oracle 178 20 3009M 35136K sleep 268:00 1.16 1.16 ora_lgwr_zjfs
3 ? 4378 oracle 178 20 3009M 35152K sleep 244:54 0.74 0.74 ora_dbw0_zjfs
1 ? 54 root 152 20 3312K 2944K run 136:01 0.45 0.45 vxfsd
3 ? 1439 root 152 20 207M 84724K run 103:21 0.40 0.40 cimprovagt
3 ? 1442 root 152 20 38312K 2820K run 2725:46 0.36 0.36 cimprovagt
3 ? 12064 oracle 178 20 2986M 5264K sleep 0:20 0.32 0.32 oraclezjfs
2 ? 1436 root 152 20 56792K 13976K run 180:41 0.23 0.23 cimserver
3 pts/ta 21448 oracle 168 20 10836K 1284K sleep 0:00 0.22 0.22 top
2 ? 2381 oracle 178 20 2987M 5944K sleep 419:20 0.18 0.18 oraclezjfs
1 ? 38 root 152 20 432K 384K run 60:21 0.16 0.16 schedcpu
2 pts/tc 21573 oracle 178 20 10964K 1412K run 0:00 0.27 0.15 top
2 ? 21551 oracle 178 20 2986M 5260K sleep 0:00 0.16 0.14 oraclezjfs
3 ? 1793 root 152 20 113M 17208K run 6:09 0.14 0.14 vxsvc
0 ? 20 root 191 20 360K 320K run 33:43 0.13 0.13 ksyncer_daemon
2 ? 1429 root 152 20 25516K 5536K run 4:42 0.12 0.12 rpcd
1 ? 4297 root -27 20 46772K 38548K run 31:58 0.12 0.12 cmcld
2 ? 21518 oracle 178 20 2986M 5260K sleep 0:00 0.13 0.12 oraclezjfs
2 ? 1228 root 154 20 7812K 848K sleep 126:00 0.10 0.10 sendmail:
2 ? 39 root 191 20 288K 256K run 305:44 0.08 0.08 pagezerod
2 ? 1589 root 152 20 25072K 3992K run 1:20 0.08 0.08 swagentd
$
$
发现listener占用的内存非常大,几乎有1个多G,检查连接数,发现大部分为jdbc的长连接,连接也不是非常频繁。几乎和平时一样。
尝试清空listener的log,稍有缓解,但是还是非常高,尝试lsnrctl reload之后,还是一样,占据的内存不变。直到重启lsnr之后,才得到解决:
System: zj-db01 Wed Apr 1 14:11:31 2009
Load averages: 0.10, 0.16, 0.27
387 processes: 361 sleeping, 26 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.16 1.0% 0.0% 0.0% 99.0% 0.0% 0.0% 0.0% 0.0%
1 0.07 3.0% 0.0% 0.0% 97.0% 0.0% 0.0% 0.0% 0.0%
2 0.10 7.9% 0.0% 3.0% 89.1% 0.0% 0.0% 0.0% 0.0%
3 0.07 4.0% 0.0% 0.0% 96.0% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- -----
avg 0.10 4.0% 0.0% 1.0% 95.0% 0.0% 0.0% 0.0% 0.0%
Memory: 3123252K (1238828K) real, 4780156K (1872504K) virtual, 1724232K free Page# 1/15
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
2 ? 2307 oracle 178 20 3015M 24612K sleep 4383:40 14.81 14.78 oraclezjfs
1 ? 2228 oracle 178 20 2986M 9624K sleep 3580:20 2.95 2.95 oraclezjfs
1 ? 2309 oracle 178 20 2986M 5536K sleep 541:30 2.83 2.83 oraclezjfs
3 ? 2528 oracle 178 20 2986M 5612K sleep 15:05 1.44 1.44 oraclezjfs
1 ? 4380 oracle 178 20 3009M 35136K sleep 268:00 1.27 1.27 ora_lgwr_zjfs
3 ? 1442 root 152 20 38312K 2820K run 2725:47 0.71 0.71 cimprovagt
0 ? 4378 oracle 178 20 3009M 35152K sleep 244:54 0.54 0.54 ora_dbw0_zjfs
1 ? 54 root 152 20 3312K 2944K run 136:01 0.45 0.45 vxfsd
3 ? 1439 root 152 20 207M 84724K run 103:21 0.43 0.43 cimprovagt
3 ? 12064 oracle 178 20 2986M 5264K sleep 0:20 0.40 0.40 oraclezjfs
2 ? 2381 oracle 178 20 2987M 5944K sleep 419:20 0.38 0.38 oraclezjfs
2 ? 1436 root 152 20 56792K 13976K run 180:41 0.30 0.30 cimserver
3 pts/ta 21448 oracle 168 20 10836K 1284K sleep 0:00 0.21 0.21 top
1 ? 38 root 152 20 432K 384K run 60:21 0.15 0.15 schedcpu
3 ? 1793 root 152 20 113M 17208K run 6:09 0.14 0.14 vxsvc
2 ? 1429 root 152 20 25516K 5536K run 4:42 0.12 0.12 rpcd
1 ? 4297 root -27 20 46772K 38548K run 31:58 0.12 0.12 cmcld
0 ? 20 root 191 20 360K 320K run 33:43 0.10 0.10 ksyncer_daemon
2 ? 1228 root 154 20 7812K 848K sleep 126:00 0.08 0.08 sendmail:
2 ? 39 root 191 20 288K 256K run 305:44 0.08 0.08 pagezerod
2 ? 1589 root 152 20 25072K 3992K run 1:20 0.08 0.08 swagentd
3 ? 2110 root 154 10 8700K 1428K sleep 66:43 0.07 0.07 psmctd
3 ? 21586 oracle 154 20 39244K 3680K sleep 0:00 0.11 0.07 tnslsnr
0 ? 4376 oracle 178 20 2986M 10496K sleep 36:10 0.07 0.07 ora_pmon_zjfs
1 ? 4305 root -14 20 11808K 1180K sleep 42:15 0.06 0.06 cmnetd
Load averages: 0.10, 0.16, 0.27
387 processes: 361 sleeping, 26 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.16 1.0% 0.0% 0.0% 99.0% 0.0% 0.0% 0.0% 0.0%
1 0.07 3.0% 0.0% 0.0% 97.0% 0.0% 0.0% 0.0% 0.0%
2 0.10 7.9% 0.0% 3.0% 89.1% 0.0% 0.0% 0.0% 0.0%
3 0.07 4.0% 0.0% 0.0% 96.0% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- -----
avg 0.10 4.0% 0.0% 1.0% 95.0% 0.0% 0.0% 0.0% 0.0%
Memory: 3123252K (1238828K) real, 4780156K (1872504K) virtual, 1724232K free Page# 1/15
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
2 ? 2307 oracle 178 20 3015M 24612K sleep 4383:40 14.81 14.78 oraclezjfs
1 ? 2228 oracle 178 20 2986M 9624K sleep 3580:20 2.95 2.95 oraclezjfs
1 ? 2309 oracle 178 20 2986M 5536K sleep 541:30 2.83 2.83 oraclezjfs
3 ? 2528 oracle 178 20 2986M 5612K sleep 15:05 1.44 1.44 oraclezjfs
1 ? 4380 oracle 178 20 3009M 35136K sleep 268:00 1.27 1.27 ora_lgwr_zjfs
3 ? 1442 root 152 20 38312K 2820K run 2725:47 0.71 0.71 cimprovagt
0 ? 4378 oracle 178 20 3009M 35152K sleep 244:54 0.54 0.54 ora_dbw0_zjfs
1 ? 54 root 152 20 3312K 2944K run 136:01 0.45 0.45 vxfsd
3 ? 1439 root 152 20 207M 84724K run 103:21 0.43 0.43 cimprovagt
3 ? 12064 oracle 178 20 2986M 5264K sleep 0:20 0.40 0.40 oraclezjfs
2 ? 2381 oracle 178 20 2987M 5944K sleep 419:20 0.38 0.38 oraclezjfs
2 ? 1436 root 152 20 56792K 13976K run 180:41 0.30 0.30 cimserver
3 pts/ta 21448 oracle 168 20 10836K 1284K sleep 0:00 0.21 0.21 top
1 ? 38 root 152 20 432K 384K run 60:21 0.15 0.15 schedcpu
3 ? 1793 root 152 20 113M 17208K run 6:09 0.14 0.14 vxsvc
2 ? 1429 root 152 20 25516K 5536K run 4:42 0.12 0.12 rpcd
1 ? 4297 root -27 20 46772K 38548K run 31:58 0.12 0.12 cmcld
0 ? 20 root 191 20 360K 320K run 33:43 0.10 0.10 ksyncer_daemon
2 ? 1228 root 154 20 7812K 848K sleep 126:00 0.08 0.08 sendmail:
2 ? 39 root 191 20 288K 256K run 305:44 0.08 0.08 pagezerod
2 ? 1589 root 152 20 25072K 3992K run 1:20 0.08 0.08 swagentd
3 ? 2110 root 154 10 8700K 1428K sleep 66:43 0.07 0.07 psmctd
3 ? 21586 oracle 154 20 39244K 3680K sleep 0:00 0.11 0.07 tnslsnr
0 ? 4376 oracle 178 20 2986M 10496K sleep 36:10 0.07 0.07 ora_pmon_zjfs
1 ? 4305 root -14 20 11808K 1180K sleep 42:15 0.06 0.06 cmnetd
此时已经恢复到3M多的内存。
经查metelink,这是一个9208上的bug,适用于所有的os平台:Bug 5576565 ,如果遇到和我一样问题的朋友,可以注意一下了,解决的方法有2个(详见Doc ID: 557397.1 ):
Solution
-------------------------------------------------------
Restarting the listener is a temporary workaround.
OR
Apply Patch 5576565 for 9.2.0.8 Oracle RDBMS.
-------------------------------------------------------
Restarting the listener is a temporary workaround.
OR
Apply Patch 5576565 for 9.2.0.8 Oracle RDBMS.
另外,再提一下在操作的时候,用了reload。其实reload仅仅是再次加载listener.ora文件,没有真正的stop listener,如果要重启,还是老老实实的用stop和start吧。
· 【文章发布信息】发表于: 2009-04-07 @ 15:02:53 · ||分类: ..experience, Working case



CopyRight ©
mayitong@hotmail.com 于 2009-04-07 @ 15:21:06 留言 :
呵呵,2年前遇到了楼主一样的问题,幸运的是提前发现了内存泄漏的问题,没有出现ORA-27102: out of memory,但时时hp 8420 pa64 bit 的CPU,最后打了9.2.0.8 CPU PATCH就好了。
brucewoo 于 2009-04-08 @ 09:19:37 留言 :
3 ? 21586 oracle 154 20 39244K 3680K sleep 0:00 0.11 0.07 tnslsnr
这个不止15K吧
小荷 于 2009-04-08 @ 11:56:48 留言 :
re brucewoo:谢谢指出,sorry,看错了。是3M多。
hoorace 于 2009-04-09 @ 09:16:44 留言 :
好像我们的sims系统内存使用也存在这样的问题,不知道你是不是在sims主机上弄的。
hoorace 于 2009-04-09 @ 09:17:42 留言 :
发现你的pagerank好像丢了,去写一下投诉邮件吧。
OoNiceDream 于 2009-04-19 @ 15:29:42 留言 :
以前一个9208的环境也有同样的问题,后来就打了这个补丁。
记得可以用ps -el | grep lsnr看内存,应该比TOP方便点,呵呵