CPU使用率100%,vmstat 显示有大量等待运行的进程,有大量的上下文切换。 sqlplus 和 lsnrctl 命令无效。数据基本是hang住了。 啥都不能用。
该bug 存在与Oracle 10.2.0.1.
1.1 Top 显示
top - 04:46:06 up198 days, 22:05, 5 users, load average: 16.20, 16.63, 21.22
tasks: 112 total, 19 running, 93 sleeping, 0 stopped, 0 zombie
cpu(s): 26.3%us, 73.0%sy, 0.0%ni, 0.6%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
mem: 4026344k total, 3255488kused, 770856k free, 279252k buffers
swap: 4192924k total, 369088kused, 3823836k free, 2835992k cached
结合网上google的结果,该bug 对cpu 表现是。用户使用30%左右,系统使用70%。
系统启动198天,会触发这个bug。 解决这个问题一是升级数据库,二是定期重启操作系统。
Linux Top 命令详解
http://blog.csdn.net/tianlesoftware/article/details/6197783
1.2 vmstat 命令
[root@localhost ~]# vmstat 2
procs -----------memory---------- ---swap-------io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
36 0 369092 503308 2481042815564 1 1 31 5 0 0 1 1 97 1 0
36 0 369092 503308 2481042815600 0 0 0 10 1047 237 26 74 0 0 0
38 0 369092 503308 2481042815600 0 0 0 0 1045 232 25 75 0 0 0
...
--这里r 表示等待运行的进行,一般小于cpu的个数。 这里超过36. 超过CPU 很多倍,而且in 值过高。 in 表示context switch。
Unix vmstat 命令
http://blog.csdn.net/tianlesoftware/article/details/5464408
1.3 sqlplus 和 lsnrctl 命令不可用
使用这2个命令时,没有反应,挂住。包括sqlplus -prelim /nolog.
二. Bug 4612267 说明
MOS 上的2篇相关文章:
Bug 4612267 - OCI client spins when machineuptime >= 249 days [ID 4612267.8]
SQL*Plus 10.2.0.1 Hangs, When System UptimeIs Long Period of Time [ID 338461.1]
说明如下:
Affects:
Product (Component) |
Oracle Server |
Range of versions believed to be affected |
Versions < 11 |
Versions confirmed as being affected |
10.1.0.5 10.2.0.1 |
Platforms affected |
Generic (all / most platforms affected) |
Fixed:
This issue is fixed in |
10.2.0.2 11.1.0.6 (Base Release) |
Description
OCIclients may spin once the machine has been up for longer than 249 days (24.9days on some machines). The spin will show repeated calls to times() fromsltrgatime64().
--根据官网的说法,是OS 系统超过249天,就会触发这个bug。 有时候是24.9 * N 天。从我google的结果看,基本都是在198和199这两天触发这个bug。