当一个进程使用大量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