日期:2014-05-16  浏览次数:20505 次

【每日一摩斯】-Troubleshooting: High CPU Utilization (164768.1) - 系列2

当一个进程使用大量CPU资源时,需要查找哪些线索呢?


哪些进程在使用CPU?

后台进程

Oracle用户进程

和Oracle无关的操作系统进程

僵尸进程


后台进程:

PMON:

当清理进程或在监听注册时,PMON进程占用CPU较高资源的主要原因可能是某个BUG。

SMON:

SMON进程负责空间整合与交易恢复,如果使用的是字典管理表空间,那么可能会产生巨大的消耗。

字典管理表空间中,如果一个包含很多extent区的大表被drop或truncate,SMON能让数据库hang住。

从9i开始,本地管理表空间是默认配置,从9i R2(9.2.x)开始,系统表空间也是基于本地管理的。

过多的空间整理会消耗过多的CPU资源。下面的文章可以提供更多的信息,以及如何排错:

Note:61997.1 SMON - Temporary Segment Cleanup and Free Space Coalescing

SMON负责的恢复操作也能消耗很高的CPU资源。下面的文章解释了SMON什么时候执行恢复操作以及如何做:

Note:414242.1 Database Hangs Because SMON is taking 100% CPU doing transaction recovery 

SMON可以并行地执行交易恢复。这可能导致CPU的高消耗。下面的实例需要考虑禁止并行恢复:


SMON may do transaction recovery in parallel. This may result in considerable CPU consumption. In such cases you may consider disabling parallel recovery:
Note:144332.1 Parallel Rollback may hang database, Parallel query servers get 100% cpu