用户名: 密码: 验证码:           网站地图 高级搜索 RSS订阅 收藏本站
Google
您的位置:首页>>网络编程>>Oracle>>阅读资讯:Oracle进程导致CPU 100%具体解决步骤

Oracle进程导致CPU 100%具体解决步骤

[ 来源: | 阅读:次 | 更新日期:2007-10-10 23:07:03 | 评论 0 条 | 我要投稿 ]
1:检查系统

  sar -u 5 5

  2: 看谁在用CPU

字串7

  topas 字串6

  ps -ef |grep ora #检查第四列,C的大小(unit,100 per cpu) 字串9

  3:检查CPU数量 www.yueluo.net

  /usr/sbin/bindprocessor -q

www.yueluo.net

  lsattr El proc0

字串7

  4:两种可能: www.yueluo.net

  1: A Background (instance) process 字串9

  2: An oracle (user) process #此种可能最大。 字串6

  5: 如果是用户进程:那么高CPU的主要原因有:

月落网

  Large Queries, Procedure compilation or execution, 字串9

  Space management and Sorting 字串6

  5.1 查看每个Session的CPU利用情况:

字串8

  select ss.sid,se.command,ss.value CPU ,se.username,se.program

月落网

  from v$sesstat ss, v$session se

月落网

  where ss.statistic# in

字串8

  (select statistic# 月落网

  from v$statname

月落

  where name = 'CPU used by this session') 字串7

  and se.sid=ss.sid

字串7

  and ss.sid>6

yueluo.net

  order by ss.sid

月落网

  5.2: 比较上述Session yueluo.net

  比较一下哪个session的CPU使用时间最多,然后查看该Session的具体情况:

字串8

  select s.sid, event, wait_time, w.seq#, q.sql_text

字串7

  from v$session_wait w, v$session s, v$process p, v$sqlarea q

字串9

  where s.paddr=p.addr and 字串9

  s.sid=&p and

月落网

  s.sql_address=q.address; 字串6

  5.3:查看

字串8

  得到上述信息后,查看相应操作是否有hash joins 和 full table scans。如果有hash joins 和 full table scans那么必须创建相应的Index或者检查Index是否有效。

字串6

  另外必须检查是否有并行的查询存在和同一时刻有多个用户在执行相同的SQL语句,如果有必须关闭并行的查询和任何类型的并行提示(hints);如果查询使用intermedia数据,那么为了减少总的Index大小,必须限制使用Intermedia的Worldlist。(try restricting the wordlist that intermedia uses to help reduce the total indexsize)。 yueluo.net

  6:注意事项

www.yueluo.net

  上述方案只能根据已经运行完成的操作,对于正在执行的长时间操作只能等操作完成后才能检测得到。因此我们可以通过另外一个很好的工具来检测正在运行的长时间操作语句。v$session_longops,这个视图显示那些操作正在被运行,或者已经完成。每个process完成后会刷新本视图的信息。

www.yueluo.net

  7:怎样寻找集中使用CPU的Process月落网

  很多时候会发现有N个Process在平均分享着CPU的利用率,这种情况唯一的可能性就是这些Process在执行着相同的Package或者Query. www.yueluo.net

  这种情况:建议通过statspack,在CPU高利用率额时候运行几个快照,然后根据这些快照检查Statspack报告,检查报告中最TOP的Query。然后使用 sql_trace and tkprof 工具去跟踪一下。

字串9

  同时检查buffer cache 的命中率是否大雨95%。 字串7

  同时在报告中还需要检查一下table scans (long tables),看是否在报告生成期间有存在全表扫描。 字串7

  8:参数

www.yueluo.net

  另外还有一些不是特别重要的,但是也必须关心检查的参数可能消耗CPU。

字串6

  parallel query 并行查询: 字串5

  并行查询最好用于数据仓库的环境下,那种情况任何时候只有几个用户在同时使用。在一个联机事务处理环境中,当同时许多用户去并行查询一个数据库的巨大表时候,会导致CPU的爆满。所以最好在数据库的级别关闭并行查询:设置参数如下:

月落网

  parallel_min_server = 0  parallel_max_server = 0

月落网

  parallel_automatic_tuning = false;

www.yueluo.net

  在配置上述参数后,如果SQL语句中使用的并行的提示,那么还是有可能会出现并行查询的情况,所以还需要继续监视相关的SQL语句,如果有可以直接去除提示。 月落


Tags:Oracle,进程,CPU 100%
责任编辑:
您的评论
用户名:新注册) 密码: 匿名评论 [所有评论]

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为