oracle 11g vktm程式佔用CPU高 【轉載】

yuntui發表於2016-11-03

估計不少朋友在virtualBox中進行oracle11g練習時會有CPU高的情況吧!下面是我從網上轉載的一篇文章,同時在我的電腦上測試了一下,進行了圖解!

 

 

11g中引入了VKTM後臺程式,VKTM是virtual keeper of time的縮寫

該程式負責提供時鐘時間(每秒更新一次)以及參考時間服務(每20ms更新一次,僅在程式高優先順序情況下可用),該參考時間服務用於各種基於時間間隔的度量

VKTM在SGA中釋出這些計時資訊,以便各種RDBMS Client可以廉價和快速瞭解時間資訊。

Wall-clock 時鐘時間每一秒更新一次且單調遞增。 

而參考時間計數(Reference-time)則每20ms更新一次,且僅當VKTM執行在高優先順序情況下時可用

 

在某些環境下VKTM持續消耗較多的CPU,特別是在虛擬化的環境中例如Vmware、Vbox等;

對於這些虛擬化環境若是非產品production環境,則可以考慮將VKTM程式不要執行在高優先順序上,雖然這會導致Reference-time參考時間計數不可用,但是實際不會產生必要的效能度量不可用的問題。 

在11g中預設 _high_priority_processes 隱藏引數指定了 LMS*|VKTM 執行在高優先順序下,可以透過修改該引數,僅讓LMS執行在高優先順序下,這樣VKTM所消耗的CPU將明顯下降。 當讓我們不建議在產品環境中這樣做,如果你確實要這樣做,建議優先諮詢Oracle Support。

 

使用方法如下,注意需要重啟RDBMS例項方才生效:

  SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ

  FROM SYS.x$ksppi x, SYS.x$ksppcv y

  WHERE x.inst_id = USERENV ('Instance')

  AND y.inst_id = USERENV ('Instance')

  AND x.indx = y.indx

  AND x.ksppinm like '%high_priority_%' ;

 

接下來是我在虛擬機器上測試的結果:

----------------------------------------------------------------------------------------------------------------------------------------------

clipboard

 

 

下圖是在沒有做修改前top的結果圖:

clipboard[1]

將TOP中CPU佔用最高的兩個程式拿出來一看,果然是vktm程式啊!

clipboard[2]
 

果斷開始更新:

SQL> alter system set "_high_priority_processes"='LMS*' scope=spfile;
 

重啟之後再看看效果:

clipboard[3]



clipboard[4]

將spfile生成為pfile之後,看到有一個 *._high_priority_processes的選項了
clipboard[5]
 
看看我自己電腦上資源管理的圖示已經不再是往上高冒了
image
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30633755/viewspace-2127737/,如需轉載,請註明出處,否則將追究法律責任。

相關文章