cpu占用过高如何减少

2016-11-06

cpu有时候会出现占用过高的情况!那么我们要怎么样去减少呢?下面由小编给你做出详细的cpu占用过高减少方法介绍!希望对你有帮助!

cpu占用过高减少方法一

一般cpu占用效高都是排序、sql解析和全表扫描,这里首先需要找出占用cpu最高的sql,然后查看他的执行计划

比如:看执行计划是走索引还是全表扫描(刚开始查看top发现占用同样多的CPU的进程很多,还以为是oracle 的bug, 后来发现不是)。

处理过程:

1, 根据操作系统进程查找Oracle数据库中占用最多CPU的SQL

使用Linux系统 "top命令->P "查出占用cpu最高的进程PID

操作如下:在sqlplus中执行如下sql:

SQL>

SELECT

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

其中&pid 是使用top 查看系统中进程占用CPU极高的PID

找到SQL语句进行相应的调整优化

2,分析找到的sql语句,如查看sql执行计划。

总结:

这里的问题是查询的where 条件字段没有在索引里面,导致查询慢。经过重建并增加相关字段到索引解决

但有点疑惑的是原来库上查询语句里where条件字段也没有在索引里面(新库是使用expdp导出再导入到新库的),查询还正常,CPU也不高,oracle数据库真是博大精深,好多问题还有待研究。

cpu占用过高减少方法二

⒈)软件方面导致的CPU使用率高

这方面主要涉及到的是系统问题,比如系统过于臃肿,开启过多程序以及电脑中病毒木马等等都会产生CPU使用率过高,而导致电脑速度慢。解决办法主要是围绕系统优化,优化开机启动项、尽量避免开启太多程序等等。

⒉)硬件方面导致的CPU使用率高

其实硬件方面决定着比较大的关系,比如如果电脑还是老爷机,采用最初的单核赛扬级处理器,那么这样的电脑,在多开启几个网页的情况下就容易导致CPU使用率过高,不管怎么优化系统,这个问题始终无法很好解决,这主要是因为硬件本身过低造成的。

⑴.排除病毒感染

如果电脑中病毒或马的情况下,木马恶意程序很可能会大量占用CPU资源,尤其是一些顽固病毒木马,一直都在恶意循环活动,感染各类系统文件,大量占用CPU资源,这种情况就很容易出现CPU使用率过高,即便是较高的CPU也经不起反复大量的恶意程序运行,因此如果发现CPU使用过高,首先应高想下是否是电脑中病毒了,建议安装如金山杀毒进行全面查杀。

⑵.排除病毒感染后,就需要从系统优化入手了,首先优化开启启动项,尽量让不需要使用到的软件不开机自动启动,比如一些播放器软件、银行安全插件等,这些完全可以需要的时候再开启,没必要开机启动。关于如何优化开机启动项.

⑶关闭不需要的程序进程

更多相关阅读

最新发布的文章