Skip to content

High CPU usage caused by the SCM0 background process in Oracle RAC

The SCM0 background process in Oracle RAC (Real Application Clusters) is a component of the Oracle Clusterware and is responsible for managing the shared resources of the cluster. Specifically, the SCM0 background process is responsible for maintaining the Global Resource Directory (GRD), which contains information about the current state of all resources in the cluster, such as the location of the primary and secondary copies of data blocks.

SCM0 also controls the flow of cache fusion traffic between the instances in a RAC cluster, which allows multiple instances to access the same data concurrently and maintain cache coherency. It also manages the locking and latching of resources and coordinates the recovery of failed resources.

High CPU usage caused by the SCM0 background process in Oracle RAC can be caused by a number of factors, including:

  1. Excessive contention for the global cache
  2. High number of global cache cr requests
  3. Excessive interconnect traffic
  4. High number of global cache cr blocks received
  5. Incorrect system configuration

To correct/prevent high CPU usage caused by the SCM0 background process in Oracle RAC, it is important to monitor and identify the root cause of the issue. Some best practices include:

  • Properly sizing the system. Increasing the number of CPU cores or adding more servers if needed
  • Properly configuring the interconnect
  • Enabling or tuning the high-performance interconnect protocol
  • Properly configuring the cache fusion parameters
  • Properly configuring the lock and latch timeout parameters
  • Taking a closer look at the query and SQL performance

Reference:
Bug 24590018 – RAC PERF: SCM0 PROCESS USING 100% CPU, FG’S USING ~80% SYS CPU POSTING SCM0
12.2 RAC DB Background process SCM0 consuming excessive CPU (Doc ID 2373451.1)

Brijesh Gogia
Leave a Reply