9.2.6 Increased Maximum Number of Database Processes

Table 9-1 shows the maximum number of database processes supported per database node. These numbers are higher than in previous releases. The best practice is to keep the process count below these values. If a subset of your workload is running parallel queries, the maximum database process count will be between the values in the "Maximum Number of Processes with No Parallel Queries" column and the "Maximum Number of Processes with All Running Parallel Queries" column.

Table 9-1 Maximum Number of Database Processes Per Node

Machine Type InfiniBand Bonding Type Maximum Number of Processes with No Parallel Queries Maximum Number of Processes with All Running Parallel Queries

8-socket (X2-8, X3-8)

Active passive

28,500

25,000

8-socket (X4-8, X5-8)

Active bonding

64,000

44,000

2-socket (X2-2, X3-2)

Active passive

12,500

10,000

2-socket (X4-2, X5-2, X6-2)

Active bonding

16,000

14,000

Table 9-2 shows the maximum number of database processes supported per Oracle VM user domain. These numbers are higher than in previous releases. The best practice is to keep the process count below these values. If a subset of your workload is running parallel queries, the maximum database process count will be between the "Maximum Number of Processes with No Parallel Queries" column and the "Maximum Number of Processes with All Running Parallel Queries" column.

Table 9-2 Maximum Number of Database Processes Per Oracle VM User Domain

Machine Type InfiniBand Bonding Type Maximum Number of Processes with No Parallel Queries Maximum Number of Processes with All Running Parallel Queries

2-socket (X2-2, X3-2)

Active passive

11,500

8,000

2-socket (X4-2, X5-2, X6-2)

Active bonding

23,000

14,000

The machines are configured as follows:

  • On an 8-socket database node with active bonding InfiniBand configurations (X4-8 and X5-8), there are 8 IP addresses across 4 InfiniBand cards (8 InfiniBand ports).

  • On an 8-socket database node with active-passive InfiniBand configurations (X2-8 and X3-8), there are 4 IP addresses across 4 InfiniBand cards (8 InfiniBand ports).

  • On a 2-socket database node with active bonding InfiniBand configurations (X4-2, X5-2, and X6-2), there are 2 IP addresses on 1 InfiniBand card (2 InfiniBand ports).

  • On a 2-socket database node with active-passive InfiniBand configurations (X2-2 and X3-2), there is 1 IP address on 1 InfiniBand card (2 InfiniBand ports).

Up to 50,000 RDS sockets are allocated per InfiniBand IP address for database usage. Each IO-capable database process will consume RDS sockets across IPs with even load balancing.

Starting with Exadata 12.1.2.3.0, there is no connection limit on the cell side.

In addition to the higher process count supported by the Exadata image and the Oracle kernel, the following related products have also been enhanced:

  • Oracle Exadata Deployment Assistant automatically configures higher limits in Grid_home/crs/install/s_crsconfig_nodenameenv.txt at deployment time.

  • Exadata Patch Manager (patchmgr and dbnodeupdate.sh) automatically configures higher limits in Grid_home/crs/install/s_crsconfig_nodenameenv.txt during database node upgrades.

The following best practices should be followed to ensure optimal resource utilization at high process count:

  • Application-initiated Oracle foregrounds should be established through a set of Oracle listeners running on the Exadata database nodes instead of using local bequeath connections.

  • The number of listeners should be at least as high as the number of database node CPU sockets, and every database node CPU socket should run the same number of listeners. For example, on an Oracle Exadata X5-8 database node, eight listeners could be configured, one per database node CPU socket.

  • Listeners should spawn Oracle processes evenly across database node CPU sockets. This can be done by specifying the socket they will run on at startup time. For example, assuming the listener.ora file is configured correctly for listeners 0 through 7, the following script could be used to spawn eight listeners on an X5-8 database node, each on a different socket:

    #!/bin/bash
    export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
    for socket in `seq 0 7`
    do
     numactl --cpunodebind=${socket} $ORACLE_HOME/bin/lsnrctl start LISTENER${socket}
    done
  • Listener connection rate throttling should be used to control login storms and provide system stability at high process counts.

  • The total number of connections established per second, in other words, the sum of rate_limit for all listeners, should not be more than 400 to avoid excessive client connection timeouts and server-side errors.

Minimum software required:

  • Oracle Exadata System Software release 12.1.2.3.0

  • Oracle Database 12c Release 1 (12.1) release 12.1.0.2.160119 with these patches: 22711561, 22233968, and 22609314