互联网服务cpuOracle进程

oracle 进程CPU使用过高,求原因,谢谢!

Topas Monitor for host:    SZQX99813            EVENTS/QUEUES    FILE/TTY
Fri Jul 15 11:03:10 2011   Interval:  2         Cswitch   12424  Readch  6466.6K
                                                Syscall   82534  Writech 3350.6K
Kernel    8.5   |###                         |  Reads      6867  Rawin         0
User     45.3   |#############               |  Writes     6441  Ttyout      403
Wait      1.5   |#                           |  Forks        10  Igets         0
Idle     44.6   |#############               |  Execs         5  Namei       814
                                                Runqueue    2.5  Dirblk        0
Network  KBPS   I-Pack  O-Pack   KB-In  KB-Out  Waitqueue   0.0
en1    6843.8   8107.0  6656.5  3179.2  3664.6
lo0       0.1      1.0     1.0     0.0     0.0  PAGING           MEMORY
en0       0.0      0.0     0.0     0.0     0.0  Faults     8888  Real,MB   31616
                                                Steals        0  % Comp     27.6
Disk    Busy%     KBPS     TPS KB-Read KB-Writ  PgspIn        0  % Noncomp  32.1
updisk0  69.5   8862.0   613.5   176.0  8686.0  PgspOut       0  % Client   32.1
updisk1  11.0   4504.0   161.5  2464.0  2040.0  PageIn        0
updisk2  13.0    400.0    25.0   264.0   136.0  PageOut       0  PAGING SPACE
hdisk1    0.0      0.0     0.0     0.0     0.0  Sios          0  Size,MB    8192
hdisk0    0.0      0.0     0.0     0.0     0.0                   % Used      0.9
updisk4   0.0      0.0     0.0     0.0     0.0  NFS (calls/sec)  % Free     99.0
cd0       0.0      0.0     0.0     0.0     0.0  ServerV2       0
updisk3   0.0      0.0     0.0     0.0     0.0  ClientV2       0   Press:
                                                ServerV3       0   "h" for help
Name            PID  CPU%  PgSp Owner           ClientV3       0   "q" to quit
oracle       766212  24.6   5.2 #
oracle       524626   4.7 179.6 #
oracle       663718   3.7   6.1 #
oracle       655522   3.0   6.3 #
oracle       422064   2.9   6.0 #
oracle       803138   2.5  26.7 #
oracle       778724   2.5   6.1 #
oracle       459234   1.5   5.9 #
oracle       372752   1.2   4.9 #
oracle       585870   0.8   4.9 #
oracle       561188   0.8   4.8 #
oracle       799064   0.7   4.4 #
oracle       307282   0.5   5.3 #
tnslsnr      217592   0.5  13.4 #
oracle       233980   0.5  27.1 #
oracle       659696   0.3   5.1 #
oracle       430458   0.2   4.2 #
oracle       504208   0.2   5.8 #
oracle       356438   0.1   5.3 #
oracle       201190   0.1  68.9 #

System Model: IBM,8204-E8A
Machine Serial Number: 0648DD6
Processor Type: PowerPC_POWER6
Number Of Processors: 4
Processor Clock Speed: 3503 MHz
CPU Type: 64-bit
Kernel Type: 64-bit
LPAR Info: 1 06-48DD6
Memory Size: 31616 MB
Good Memory Size: 31616 MB
Platform Firmware level: EL350_085
Firmware Version: IBM,EL350_085
Console Login: enable
Auto Restart: true
Full Core: false

Volume Groups Information
==============================================================================
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            active            546         217         109..12..00..00..96
hdisk1            active            546         109         13..00..00..00..96
==============================================================================
oravg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
updisk0           active            2899        61          00..06..00..00..55
updisk1           active            2899        0           00..00..00..00..00
updisk2           active            2499        86          07..00..00..00..79
==============================================================================
datavg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
updisk3           active            2499        1859        244..116..499..500..500
updisk4           active            2499        2115        500..116..499..500..500
==============================================================================



SQL> show sga
Total System Global Area 1.7180E+10 bytes
Fixed Size                  2114248 bytes
Variable Size            1.5485E+10 bytes
Database Buffers         1677721600 bytes
Redo Buffers               14659584 bytes
SQL> exit
参与24

23同行回答

Abby_LiAbby_Li项目经理太极计算机股份有限公司
3点建议:1. 生成awr报告, 查看top5 event, 锁、等待的情况。2. 查看执行时间长的语句, 泛优化。3. 根据操作系统的进程号,查看占用资源高的进程的SQL, 问题最有可能出现在应用上。显示全部
3点建议:
1. 生成awr报告, 查看top5 event, 锁、等待的情况。
2. 查看执行时间长的语句, 泛优化。
3. 根据操作系统的进程号,查看占用资源高的进程的SQL, 问题最有可能出现在应用上。收起
系统集成 · 2011-07-17
浏览554
风影子风影子数据库管理员深圳
继续关注,之前我有听我同事说起过他们开发过一个程序,一运行就会有几十个session连接上来,然后CPU一下就被占满了,后来据说是修改了客户端程序,不要同时一起连接到数据库来,且降低连接数据库的频率就解决了,不知道会不会是类似问题。有必要还是请开发人员检查一下程序。...显示全部
继续关注,之前我有听我同事说起过他们开发过一个程序,一运行就会有几十个session连接上来,然后CPU一下就被占满了,后来据说是修改了客户端程序,不要同时一起连接到数据库来,且降低连接数据库的频率就解决了,不知道会不会是类似问题。有必要还是请开发人员检查一下程序。收起
互联网服务 · 2011-07-16
浏览521
tabttytabttymanagercic
内存很强大,4C配了32GB,没几个用户连上来,然后磁盘的IO不算小,相对的来说,写入量算较高,updisk0有8.5M和updisk1也有2M,在干些啥坏事?注意下updisk0磁盘空间快没了,已经98%了。 766212这个进程注意查下。有数据库的失败core在做恢复性检查处理?...显示全部
内存很强大,4C配了32GB,没几个用户连上来,然后磁盘的IO不算小,相对的来说,写入量算较高,updisk0有8.5M和updisk1也有2M,在干些啥坏事?注意下updisk0磁盘空间快没了,已经98%了。 766212这个进程注意查下。有数据库的失败core在做恢复性检查处理?收起
IT分销/经销 · 2011-07-15
浏览530
yukay2010yukay2010系统工程师神州数码系统集成服务有限公司
7L那个解释很强大显示全部
7L那个解释很强大收起
系统集成 · 2011-07-15
浏览1199
wjlcnwjlcn数据库管理员none
LZ 忙去了?结果呢?显示全部
LZ 忙去了?结果呢?收起
互联网服务 · 2011-07-15
浏览1172
myguangzhoumyguangzhou技术经理Uniwise
叫开发的过来,把进程名字告诉他们,看到底哪个妖怪在作怪还有,做一个awr分析显示全部
叫开发的过来,把进程名字告诉他们,看到底哪个妖怪在作怪
还有,做一个awr分析收起
互联网服务 · 2011-07-15
浏览1273
chinagjjchinagjj系统分析师大连银行
select p.spid,s.sid,s.serial#from v$session s,v$process pwhere s.paddr=p.addr and p.spid=766212找到问题的会话然后对这个会话 执行10046查看产生的trc文件显示全部
select p.spid,s.sid,s.serial#
from v$session s,v$process p
where s.paddr=p.addr and p.spid=766212

找到问题的会话
然后对这个会话 执行10046
查看产生的trc文件收起
银行 · 2011-07-15
浏览1238
whoami_2008whoami_2008副总经理/副总裁乌鲁木齐银行
【转】 Oracle 9I ora_d00_sid 占CPU2010-07-01 10:48转载自 木叶猴最终编辑 waterweizhong我的系统是在linux下的oracle9.2.0.4。SQL> select distinct server from v$session;DEDICATEDSQL> host[oracle@qadb oradata]$ ps -aux|grep oracleoracle 1972 0.0 0.1 14568 ...显示全部
【转】 Oracle 9I ora_d00_sid 占CPU2010-07-01 10:48转载自 木叶猴最终编辑 waterweizhong
我的系统是在linux下的oracle9.2.0.4。

SQL> select distinct server from v$session;
DEDICATED

SQL> host
[oracle@qadb oradata]$ ps -aux|grep oracle
oracle 1972 0.0 0.1 14568 1724 ? S Jun07 0:16 /u01/app/oracle/product/9.2.0.4/bin/tnslsnr LISTENER -inherit
oracle 1976 0.0 0.1 291240 1696 ? S Jun07 2:16 ora_pmon_sid
...............
oracle 1992 0.0 0.2 292616 2448 ? S Jun07 0:04 ora_s000_sid
oracle 1994 24.7 0.0 291064 428 ? R Jun07 4152:06 ora_d000_sid
oracle 22683 0.0 0.0 290836 44 ? S Jun09 0:00 oraclesid(LOCAL=NO)
...............

其中ora_d000_sid进程长时间的占用了24.7%的cpu。
虽然这时有15到20个session连上来,但都不太占资源。


而且还一直在稳步上涨中:

06-06-19 11:18的:

oracle 1994 24.7 0.0 291064 428 ? R Jun07 4152:06 ora_d000_sid

到06-06-19 15:08的:
oracle 1994 25.8 0.0 291064 440 ? S Jun07 4405:00 ora_d000_sid

到06-06-20 08:51的:

oracle 1994 30.2 0.0 291064 380 ? R Jun07 5467:25 ora_d000_sid

到06-06-20 15:46的:
oracle 1994 31.7 0.0 291064 360 ? R Jun07 5884:58 ora_d000_sid

后经nmgzw建议:“以前我也注意到过,每次shutdown数据库时,总要等***d000***这个进程,因为我确认我们根本就不使用shared mode的连接,所以我把参数改了,这样,起数据库后,也就不存在d000这个进程!

所以,我觉得,不管它为什么在稳步增长,如果用户连接根本没用到,那部用管它,把参数改了,下次启动数据库时不让它起就好了!”

所以我将init.ora中关于mts的“dispatchers="(PROTOCOL=TCP) (SERVICE=sidXDB)"”(只有dispatchers的设置)注释,再用新的参数文件重启数据库。


注:这是老袁今天早上讲的主要内容 !抽空中午的时间我发上来。下午的话会有更加重要的——备份和恢复,还有下午要考试!但是班里面的这几个爷们好像一点都不紧张!FT,这叫考试啊。我先吧今天早上的发上去吧!

================================笔记的分割线==================================

一、 共享服务器初始化参数

DISPATCHERS:配置调度程序进程
MAX_DISPATCHERS:指定同时运行的调度程序进程最大数目

用于设置调度程序的起始数目,初始化文件可以指定多个DISPATCHERS参数,但必须是彼此相邻的。Oracle内部为每个DISPATCHERS参数分配一个INDEX索引值,以方便之后使用ALTER SYSTEM语句时明确引用某个DISPATCHERS参数。

对一般系统来说,每1000个连接分配1个调度程序,运转好的话再多一些。太多的调度程序会降低系统性能,所以要实现估计好连接数。

举例:
DISPATCHERS = "(PROTOCOL = TCP)" --基本参数
DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(HOST = 10.2.1.81)) (DISPATCHERS = 2)" --强调IP
DISPATCHERS = "(ADDRESS = (PROTOCOL = TCP)(PORT = 5000))" --强调端口



SHARED_SERVERS:指定启动实例时可创建的共享服务器进程数
MAX_SHARED_SERVERS:指定可以同时运行的共享服务器进程最大数目

指定了启动时希望创建的共享服务进程的数目。Oracle会在SHARED_SERVERS和MAX_SHARED_SERVERS之间的数目中,根据请求队列的长度动态调整共享服务器的数目。一般来说,10个连接分配一个共享服务器。

MAX_SHARED_SERVERS是一个静态初始参数,但SHARED_SERVERS是动态参数,可以使用ALTER SYSTEM语句修改。

CIRCUTTS:进出网络会话时可以利用的虚拟回路总数

SHARED_SERVER_SESSIONS:用户会话允许的共享服务器总数,可以为专门服务器保留用户会话

LARGE_POOL_SIZE:指定大型存储池分配字节大小

SESSIONS:系统可创建的最大会话数目


二、修改调度程序和服务器进程


1、调度进程

可通过V$QUEUE、V$DISPATCHER、V$DISPATCHER_RATE来查看

通过ALTER SYSTEM修改DISPATCHERS参数值

ALTER SYSTEM SET DISPATCHERS =
'(PROTOCOL = TCP)(DISPATCHERS = 5)(INDEX = 0)',
'(PROTOCOL = TCPS)(DISPATCHERS = 2)(INDEX = 1)';

注1:DISPATCHERS:是参数;DISPATCHERS=5 才是调度进程个数;
注2:INDEX用于识别DISPATCHERS参数,从0到n依次排列,即V$DISPATCHER中的CONF_INDX值


2、关闭调度进程

首先要查询到DISPATCHERS的NAME:

SELECT NAME,NETWORK FROM V$DISPATCHER;

然后关闭调度进程:

ALTER SYSTEM SHUTDOWN IMMEDIATE 'D000';

更改共享服务器进程最少数目:

ALTER SYSTEM SET SHARED_SERVERS = 2;


3、监视共享服务器

V$DISPATCHER:提供有关调度程序进程的信息;
V$DISPATCHER_RATE:提供调度程序进程的速率统计表;
V$QUEUE:包含有关共享服务器的消息队列的信息;
V$SHARED_SERVER:包含有关共享服务器进程的信息;
V$CIRCUIT:包含有关虚拟回路的信息;
V$SHARED_SERVER_MONITOR:包含协调共享服务器的信息;
V$SGA:包含各个系统全局区(SGA)组的容量信息;
V$SGASTAT:关于DGA的详细统计信息,用于协调共享服务器;
V$SHARED_POOL_RESERVED:共享存储池的信息收起
银行 · 2011-07-15
浏览1249
haidapanbohaidapanbo系统工程师中国电力科学研究院
这么多的高手,膜拜中显示全部
这么多的高手,膜拜中收起
互联网服务 · 2011-07-15
浏览1202
frog_hongfrog_hong系统架构师湖南长沙科技有限公司
回复 3# mophis # ps -ef | grep 766212    root 758098 483728   0 11:33:03  pts/1  0:00 grep 766212# oracle 766212      1 109 06:00:01      - 255:17 oracleSZQX (LOCAL=NO)#...显示全部
回复 3# mophis

# ps -ef | grep 766212
    root 758098 483728   0 11:33:03  pts/1  0:00 grep 766212
# oracle 766212      1 109 06:00:01      - 255:17 oracleSZQX (LOCAL=NO)
#收起
互联网服务 · 2011-07-15
浏览1218

提问者

frog_hong
系统架构师湖南长沙科技有限公司
擅长领域: 数据库新核心系统AIX

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-07-15
  • 关注会员:1 人
  • 问题浏览:17447
  • 最近回答:2011-08-29
  • X社区推广