cpu占用過高如何減少
cpu有時(shí)候會出現(xiàn)占用過高的情況!那么我們要怎么樣去減少呢?下面由學(xué)習(xí)啦小編給你做出詳細(xì)的cpu占用過高減少方法介紹!希望對你有幫助!
cpu占用過高減少方法一
一般cpu占用效高都是排序、sql解析和全表掃描,這里首先需要找出占用cpu最高的sql,然后查看他的執(zhí)行計(jì)劃
比如:看執(zhí)行計(jì)劃是走索引還是全表掃描(剛開始查看top發(fā)現(xiàn)占用同樣多的CPU的進(jìn)程很多,還以為是oracle 的bug, 后來發(fā)現(xiàn)不是)。
處理過程:
1, 根據(jù)操作系統(tǒng)進(jìn)程查找Oracle數(shù)據(jù)庫中占用最多CPU的SQL
使用Linux系統(tǒng) "top命令->P "查出占用cpu最高的進(jìn)程PID
操作如下:在sqlplus中執(zhí)行如下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 查看系統(tǒng)中進(jìn)程占用CPU極高的PID
找到SQL語句進(jìn)行相應(yīng)的調(diào)整優(yōu)化
2,分析找到的sql語句,如查看sql執(zhí)行計(jì)劃。
這里的問題是查詢的where 條件字段沒有在索引里面,導(dǎo)致查詢慢。經(jīng)過重建并增加相關(guān)字段到索引解決
但有點(diǎn)疑惑的是原來庫上查詢語句里where條件字段也沒有在索引里面(新庫是使用expdp導(dǎo)出再導(dǎo)入到新庫的),查詢還正常,CPU也不高,oracle數(shù)據(jù)庫真是博大精深,好多問題還有待研究。
cpu占用過高減少方法二
?、?軟件方面導(dǎo)致的CPU使用率高
這方面主要涉及到的是系統(tǒng)問題,比如系統(tǒng)過于臃腫,開啟過多程序以及電腦中病毒木馬等等都會產(chǎn)生CPU使用率過高,而導(dǎo)致電腦速度慢。解決辦法主要是圍繞系統(tǒng)優(yōu)化,優(yōu)化開機(jī)啟動項(xiàng)、盡量避免開啟太多程序等等。
⒉)硬件方面導(dǎo)致的CPU使用率高
其實(shí)硬件方面決定著比較大的關(guān)系,比如如果電腦還是老爺機(jī),采用最初的單核賽揚(yáng)級處理器,那么這樣的電腦,在多開啟幾個(gè)網(wǎng)頁的情況下就容易導(dǎo)致CPU使用率過高,不管怎么優(yōu)化系統(tǒng),這個(gè)問題始終無法很好解決,這主要是因?yàn)橛布旧磉^低造成的。
?、?排除病毒感染
如果電腦中病毒或馬的情況下,木馬惡意程序很可能會大量占用CPU資源,尤其是一些頑固病毒木馬,一直都在惡意循環(huán)活動,感染各類系統(tǒng)文件,大量占用CPU資源,這種情況就很容易出現(xiàn)CPU使用率過高,即便是較高的CPU也經(jīng)不起反復(fù)大量的惡意程序運(yùn)行,因此如果發(fā)現(xiàn)CPU使用過高,首先應(yīng)高想下是否是電腦中病毒了,建議安裝如金山殺毒進(jìn)行全面查殺。
⑵.排除病毒感染后,就需要從系統(tǒng)優(yōu)化入手了,首先優(yōu)化開啟啟動項(xiàng),盡量讓不需要使用到的軟件不開機(jī)自動啟動,比如一些播放器軟件、銀行安全插件等,這些完全可以需要的時(shí)候再開啟,沒必要開機(jī)啟動。關(guān)于如何優(yōu)化開機(jī)啟動項(xiàng).
?、顷P(guān)閉不需要的程序進(jìn)程
看了“ cpu占用過高如何減少”文章的還看了: