资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 问答精华 >
Advertisement
文章正文

oracle运行系统比较慢,cpu使用率高的检查和紧急处理

类型:转载   责任编辑:egoo   日期:2007/03/01


热门软件下载:


   

      

        当运行数据库的系统资源压力比较大的时候,,系统资源利用率比较告,通过# sar 1 5观察系统wio比较高,或者cpu idle利用率比较低,cpu比较忙;或者还会有内存使用率比较高,并且不断的上升;
原因是可能有一些进程占用了大量的cpu或者mem资源,长时间不能释放,累积占用资源比较高,可以如下进行检查系统情况:
查看系统中使用mem资源比较多的进程:

#ps -elf|awk $10 >16000 {print  }| sort –rnk 10

查看系统中使用cpu资源比较多的进程:

# top –n500 –f top.out

可以找出分别占用cpu和mem最多的进程,如果是oracle的进程,其中有local=no是我们需要关注的oracle进程,可以通过如下语句查看具体执行的是什么语句:先要知道进程的pid号;

得到进程的sid号:
select id,serial# ,username,osuser,machine,program,process,to_char(logon_time,yyyy/mm/dd hh24:mi:ss) logon from v$session where paddr in ( select addr from v$process where spid in(&pid));
得到session的sqltext语句:

select sql_text from v$sqltext_with_newlines where hash_value in (select sql_hash_value from v$session where paddr in (select addr from v$process where spid= &pid)) order by piece;

    或者通过如下一样的语句输入pid号查出:

select   /*+ ordered */         sql_text    from v$sqltext a   where (a.hash_value, a.address) in (            select decode (sql_hash_value,                           0, prev_hash_value,                           sql_hash_value                          ),                   decode (sql_hash_value, 0, prev_sql_addr, sql_address)              from v$session b             where b.paddr = (select addr                                from v$process c                               where c.spid = &pid))order by piece asc/

 然后可以分析这些sql语句,看是否是语句本身的问题,并可以通过考虑是否需要将这些语句给kill掉;

 

以上的内容主要是针对紧急处理的情况,暂时强行将使用cpu较高的进程给kill掉,以保证业务的正常运行;如果要了解深入的原因,可以将当时运行的语句提出出来,做进一步的分析,查看语句是否合理等等。


 

 
热门推荐笔记本: TCL笔记本
相关文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved