cpu占用过高如何减少【汇编2篇】
cpu有时候会出现占用过高的情况!那么我们要怎么样去减少呢?下面由读文网小编给你做出详细的cpu占用过高减少方法介绍!希望对你有帮助!
cpu占用过高减少方法1
⒈)软件方面导致的CPU使用率高
这方面主要涉及到的是系统问题,比如系统过于臃肿,开启过多程序以及电脑中病毒木马等等都会产生CPU使用率过高,而导致电脑速度慢。解决办法主要是围绕系统优化,优化开机启动项、尽量避免开启太多程序等等。
⒉)硬件方面导致的CPU使用率高
其实硬件方面决定着比较大的关系,比如如果电脑还是老爷机,采用最初的单核赛扬级处理器,那么这样的电脑,在多开启几个网页的情况下就容易导致CPU使用率过高,不管怎么优化系统,这个问题始终无法很好解决,这主要是因为硬件本身过低造成的。
⑴.排除病毒感染
如果电脑中病毒或马的情况下,木马恶意程序很可能会大量占用CPU资源,尤其是一些顽固病毒木马,一直都在恶意循环活动,感染各类系统文件,大量占用CPU资源,这种情况就很容易出现CPU使用率过高,即便是较高的CPU也经不起反复大量的恶意程序运行,因此如果发现CPU使用过高,首先应高想下是否是电脑中病毒了,建议安装如金山杀毒进行全面查杀。
⑵.排除病毒感染后,就需要从系统优化入手了,首先优化开启启动项,尽量让不需要使用到的软件不开机自动启动,比如一些播放器软件、银行安全插件等,这些完全可以需要的时候再开启,没必要开机启动。关于如何优化开机启动项.
⑶关闭不需要的程序进程
看了“ cpu占用过高如何减少”文章的还看了:
cpu占用过高减少方法2
一般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数据库真是博大精深,好多问题还有待研究。