VKTM进程消耗大量CPU的问题

本文介绍了Oracle 11g中引入的VKTM进程,该进程负责提供时钟时间和参考时间服务,并探讨了其在虚拟化环境下的CPU消耗问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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%';

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

System altered.

之后重启INSTANCE

shutdown immediate;
startup;
ps -ef | grep ora | grep -v grep oracle 1601559 1 0 18:05 ? 00:00:58 /tmp/OraInstall2025-08-07_06-05-40PM/jdk/jre/bin/java -Doracle.installer.library_loc=/tmp/OraInstall2025-08-07_06-05-40PM/oui/lib/linux -Doracle.installer.oui_loc=/tmp/OraInstall2025-08-07_06-05-40PM/oui -Doracle.installer.bootstrap=TRUE -Doracle.installer.startup_location=/home/haha/database/install -Doracle.installer.jre_loc=/tmp/OraInstall2025-08-07_06-05-40PM/jdk/jre -Doracle.installer.nlsEnabled="TRUE" -Doracle.installer.prereqConfigLoc= -Doracle.installer.unixVersion=5.4.0-26-generic -mx150m -cp /tmp/OraInstall2025-08-07_06-05-40PM::/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/ssh.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/prov_fixup.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/OraPrereq.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/OraPrereqChecks.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/instdb.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/emocmutl.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/instcommon.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/orai18n-utility.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/installcommons_1.0.0b.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/cvu.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/jsch.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/orai18n-mapping.jar:/tmp/OraInstall2025-08-07_06-05-40PM/ext/jlib/remoteinterfaces.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/OraInstaller.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/oneclick.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/xmlparserv2.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/share.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/OraInstallerNet.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/emCfg.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/emocmutl.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/OraPrereq.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/jsch.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/ssh.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/remoteinterfaces.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/http_client.jar:../stage/Components/oracle.swd.opatch/11.2.0.1.0/1/DataFiles/jlib/opatch.jar:../stage/Components/oracle.swd.opatch/11.2.0.1.0/1/DataFiles/jlib/opatchactions.jar:../stage/Components/oracle.swd.opatch/11.2.0.1.0/1/DataFiles/jlib/opatchprereq.jar:../stage/Components/oracle.swd.opatch/11.2.0.1.0/1/DataFiles/jlib/opatchutil.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/OraCheckPoint.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstImages.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_de.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_es.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_fr.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_it.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_ja.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_ko.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_pt_BR.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_zh_CN.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/InstHelp_zh_TW.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/oracle_ice.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/help4.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/help4-nls.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/ewt3.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/ewt3-swingaccess.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/ewt3-nls.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/swingaccess.jar::/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/jewt4.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/jewt4-nls.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/orai18n-collation.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/orai18n-mapping.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/ojmisc.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/xml.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/srvm.jar:/tmp/OraInstall2025-08-07_06-05-40PM/oui/jlib/srvmasm.jar oracle.install.ivw.db.driver.DBInstaller -scratchPath /tmp/OraInstall2025-08-07_06-05-40PM -sourceLoc /home/haha/database/install/../stage/products.xml -sourceType network -timestamp 2025-08-07_06-05-40PM -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq oracle 1602206 1601559 0 18:06 ? 00:00:00 /usr/bin/make -f /u01/app/oracle/product/11.2.0/dbhome_1/network/lib/ins_net_client.mk mkldflags ntcontab.o nnfgt.o ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 oracle 1602219 1602206 0 18:06 ? 00:00:00 /bin/sh -c (if [ "compile" = "compile" ] ; then \ /u01/app/oracle/product/11.2.0/dbhome_1/bin/gennttab > ntcontab.c ;\ gcc -m64 -c ntcontab.c ;\ rm -f /u01/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ;\ mv ntcontab.o /u01/app/oracle/product/11.2.0/dbhome_1/lib/ ;\ /usr/bin/ar rv /u01/app/oracle/product/11.2.0/dbhome_1/lib/libn11.a /u01/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ; fi) oracle 1602220 1602219 0 18:06 ? 00:00:00 /bin/sh -c (if [ "compile" = "compile" ] ; then \ /u01/app/oracle/product/11.2.0/dbhome_1/bin/gennttab > ntcontab.c ;\ gcc -m64 -c ntcontab.c ;\ rm -f /u01/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ;\ mv ntcontab.o /u01/app/oracle/product/11.2.0/dbhome_1/lib/ ;\ /usr/bin/ar rv /u01/app/oracle/product/11.2.0/dbhome_1/lib/libn11.a /u01/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ; fi) oracle 1602221 1602220 0 18:06 ? 00:00:00 /bin/sh /u01/app/oracle/product/11.2.0/dbhome_1/bin/gennttab root 1685814 1683817 0 20:27 pts/3 00:00:00 su - oracle oracle 1685833 1685814 0 20:27 pts/3 00:00:00 -bash root 1700879 1692107 0 20:48 pts/3 00:00:00 su - oracle oracle 1700898 1700879 0 20:48 pts/3 00:00:00 -bash oracle 1703258 1700898 0 20:54 pts/3 00:00:00 ps -ef
最新发布
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值